我正在用as3在flash AIR中为安卓制作一款游戏,在一个级别上,我的角色必须收集9枚硬币。问题是我使用了hitTest,如果这是真的,我改变了两个门的y位置,这会导致滞后,也就是门的移动。这是我使用的代码
if (coin1.hitTestObject(heroj)) {
sndcoin.play();
coin1.y=-100;
opengate();
}在我创建的opentgate()函数中
gatedoor1.y+=4;
gatedoor2.y-=4;这会导致每次收集硬币都会有0.3-0.5秒的延迟,有没有办法加快速度?
发布于 2014-04-11 17:25:25
硬币是非常原始的物体,命中测试可以用距离来计算。如果英雄离硬币足够近,你可以认为它是命中。
var dx: Number = heroj.x - coin1.x;
var dy: Number = heroj.y - coin1.y;
const coinRadius: int = 5;
if(dx*dx + dy*dy <= coinRadius*coinRadius ){
trace("Hero is catched coin");
}第二时刻,命中测试成功后,释放资源,不再检查命中测试。
https://stackoverflow.com/questions/22997402
复制相似问题