나는 테스트 게임으로 천천히 진행하고 있으며, 배열을 통해 무대에 적을 추가 할 수있는 지점에 도달했습니다. 플레이어를 따라 가면서 문제없이 플레이어쪽으로 회전합니다. 다음 과제는 각각의 적의 충돌 탐지를 서로주고받는 것입니다. 그렇지 않으면 결국 모든 센서가 서로 완전히 겹치게되어 매우 현실적이지 않습니다. 내가 붙어있어 어디 그래서 여기as3 배열의 적들이 서로 테스트에 성공 했습니까?
public function initEnemy():void
{
enemyArray = new Array();
for (var i = 0; i < 2; i++)
{
var enemy:Enemy = new Enemy((Math.random() *500 + 20), (Math.random() * 200 + 50));
stage.addChild(enemy);
enemyArray.push(enemy);
}
}
public function enemyBehavior():void
{
var enemyRotation:int;
for (var i:int = 0; i < enemyArray.length; i++)
{
var enemy = enemyArray[i];
var dx:int = enemy.x - player.x;
var dy:int = enemy.y - player.y;
var dr:int = dx * dx + dy * dy;
var dr2:int = Math.sqrt(dr);
enemy.x -= enemySpeed * dx/dr2;
enemy.y -= enemySpeed * dy/dr2;
enemyRotation = -(Math.atan2(enemy.x - player.x, enemy.y - player.y) * 180/Math.PI);
trace(enemyRotation);
enemy.rotation = enemyRotation;
if (enemy.hitTestObject(enemyArray[i+1]))
{
enemy.x -= -enemySpeed;
enemy.y -= -enemySpeed;
}
가있다 :
다음은 지금까지 단지 원수에 대한 내 코드입니다. enemy.hitTestObject 부분에서, 원래 적을 hitTesting 적이 있었지만 적 자체가 테스트를 치게하고 완전히 움직임과 회전을 망쳤습니다. 그래서 우리는 위의 것을 시도해 보았습니다. 적의 인스턴스를 배열의 다음 지점에서 다음번에 적의 인스턴스를 테스트하여 적을 테스트했습니다. 적의 대부분은 작동하지만 배열의 마지막 인스턴스 존재하지 않는 인스턴스를 hitTest하려고 시도하고 성능이 크게 저하됩니다.다른 사람이 나에게 더 나은 방법으로 성능에 친숙한 배열에서 이러한 개체를 테스트 할 수있는 방향을 제시 할 수 있습니까?
가능한 [스테이지의 여러 객체와의 충돌 테스트] (http://stackoverflow.com/questions/8288209/collision-testing-with-multiple-objects- 무대 위) – CyanAngel