0
if(blue2.hitTestObject(_helicopter))
{
trace("YOU HIT THE BLOCK!");
ihit = true;
_helicopter.x = 76;
_helicopter.y = 217;
}
是否可以添加暫停功能在碰撞代碼^?是的,我在那裏寫什麼?謝謝!
if(blue2.hitTestObject(_helicopter))
{
trace("YOU HIT THE BLOCK!");
ihit = true;
_helicopter.x = 76;
_helicopter.y = 217;
}
是否可以添加暫停功能在碰撞代碼^?是的,我在那裏寫什麼?謝謝!
暫停在您的上下文中有點難以解釋。
舉例來說,如果你的遊戲有一個輸入幀處理,你可以停止所有遊戲動畫一段時間。或者,也許你想凍結一個「你撞上了街區!」消息一段時間,而背景動畫仍然運行。
一種方法是使用計時器。它是異步的,但最終結果是在一段時間(毫秒)後調用一個函數。
在這個例子中,被執行代碼的5秒鐘後,一個匿名函數迴應說時間到了:
// needed imports:
import flash.events.TimerEvent;
import flash.utils.Timer;
if (blue2.hitTestObject(_helicopter))
{
trace("YOU HIT THE BLOCK!");
ihit = true;
_helicopter.x = 76;
_helicopter.y = 217;
var timer:Timer = new Timer(5000); // 5-seconds
timer.addEventListener(TimerEvent.TIMER, function(event:TimerEvent):void
{
timer.reset();
timer.removeEventListener(TimerEvent.TIMER, arguments.callee);
trace("5-seconds after hitting the block.");
});
timer.start();
}
如果你不喜歡匿名函數,你可以實現它:
// needed imports:
import flash.events.TimerEvent;
import flash.utils.Timer;
if (blue2.hitTestObject(_helicopter))
{
trace("YOU HIT THE BLOCK!");
ihit = true;
_helicopter.x = 76;
_helicopter.y = 217;
var timer:Timer = new Timer(5000); // 5-seconds
timer.addEventListener(TimerEvent.TIMER, collisionWaitHandler);
timer.start();
}
// ... later in its own function:
protected function collisionWaitHandler(event:TimerEvent):void
{
var timer:Timer = Timer(event.currentTarget);
timer.reset();
timer.removeEventListener(TimerEvent.TIMER, collisionWaitHandler);
trace("5-seconds after hitting the block.");
}