有没有办法让AS3中的hitTest更快?

时间:2014-04-06 12:43:56

标签: android actionscript-3 flash

我已经在AS3上制作了一款适用于Android的游戏,当我在我的电脑上测试它时效果很好,但是当我尝试使用Android时,hitTests会让我的游戏慢一点,例如我有一个级别,你需要收集9个硬币,每当你的角色即将收集它时,游戏会冻结一点,我使用的代码是

if (coin1.hitTestObject(hero)){
coin1.visible=false;
gate.y-=10;
}

就是这样,基本上只有2个任务可以让程序在hitTest上执行,但它会减慢游戏速度......而且我的游戏只有600kb大,我不认为它是代码的其他部分,它没有声音或其他任何东西,一切只是游戏中的hitTests基本上......

1 个答案:

答案 0 :(得分:1)

你可以用另一种方法交换hitTestObject。计算与英雄的硬币距离,如果它们足够接近则将其移除。这样的数学运算应该更快:

var someDistance: Number = 4;
var dx: Number = hero.x - coin.x;
var dy: Number = hero.y - coin.y;

if(Math.sqrt(dx*dx + dy*dy) <= someDistance){
    //Gotcha! Hero "collided" with coin
}