少し質問があります。簡単なボードゲームを作っています。ユーザーは、AI と対戦する可能性があります。それは正常に動作します。ゲームのルールでは、サイコロを振って 1 か 4 が出たら、もう一度プレイできるとされています。というわけで for ループを作りました。それも機能します。AI は必要な回数だけ再生し、P1 が再生できるようにします。私の問題は、ポーンの動きのすべてのアニメーションが同時に発生することです。例: AI のターン: 4. もう一度プレイ: 1. もう一度プレイ: 5. プレイヤーのターン。4 & 1 & 5 のすべてのアニメーションが同時に再生されます (奇妙に見えます)。アニメーションが再生される時間を確保するために、AI からの最初のスローと次のスローの間に 2 秒の遅延が必要です。timer
aまたは aを使用する必要があることを読みsetInterval
ましたが、ループ内のどこにどのように配置するかがよくわかりません。
編集:以下の回答のおかげで、コードを更新しました:
function fnTimeOut() {
var intervalId: uint = setTimeout(fnNextPlayer, 2000, null);
}
next.addEventListener(MouseEvent.CLICK, fnNextPlayer);
function fnNextPlayer (e:Event):void{
if (player2.currentFrame == 2) { //AI's turn
randDice=random(1, 6); //dice thrown (have a random function setup already)
if (randDice==1){
//start animation
//move pawns
fnTimeOut(); //restarts the function after 2secs
}
if (randDice==2){
//start animation
//move pawns
player2.gotoAndStop(1); //starts player1's turns
//stop loop because not 1 or 4
}
}
}
}
誰かが私を助けてくれることを願っています:)ありがとう。