1

私はjsの完全な初心者であり、クラスを受講していて、私たちの課題の1つは基本的なレースゲームを作ることです。見つかったスクリプトはどれでも使用できるので、gamequery を選択しました。プレーヤーは完全に自動化されており、x% の確率でまっすぐになり、y% の確率で正しく、残りは離れることを前提としています。gamequery チュートリアル スペース ゲームを一種のガイドとして使用しましたが、動きと衝突を扱っていると、特に前後の動きでコードが非常に遅くなります。

function Movement(){
movetwo = Math.random();
$(".obstacle").each(function(){                                 
                    var collided = $(this).collision("#player2Body,."+$.gQ.groupCssClass);
                if(collided.length > 0){                        
                             $("#player2").x($("#player2").x()-2);                                                                                          
                }               
                var collided2 = $(this).collision("#playerBody,."+$.gQ.groupCssClass);
                if(collided2.length > 0){                   
                             $("#player").x($("#player").x()-2);                        
                }
            });

if (movetwo <= twol) {
 $("#player2").y($("#player2").y()+2);
}
else if ((movetwo > twol) && (movetwo <= (twol + twor))){
$("#player2").y($("#player2").y()-2);
}
else {
$("#player2").x($("#player2").x()+2);
}
moveone = Math.random();
if (moveone <= twol) {
$("#player").y($("#player").y()+2);
}
else if ((moveone > twol) && (moveone <= (twol + twor))){
$("#player").y($("#player").y()-2);
}
else {
$("#player").x($("#player").x()+2);
}
}

移動前に衝突を検出する方法があることは知っていますが、移動がランダム化されているため、それを実装する方法が本当にわかりません。切り替えたほうが早い?また、奇妙なことに、私が配置した約 3 つの障害物を除くすべての障害物との衝突が示され、何らかの理由で、ランダムに配置された場所に関係なく、それらのいくつかを無視します。私は自分のスキルレベルよりも多くのことをしたと思うので、助けていただければ幸いです.

4

1 に答える 1

1

障害物ごとにプレーヤーとの衝突をチェックする代わりに、反対のことを行う必要があります。プレーヤーごとに、障害物と衝突するかどうかをチェックします。

プレイヤーを実際に動かす前に、プレイヤーが障害物に衝突するかどうかを確認したい場合は、次のドキュメントで説明されているようにオーバーライド パラメータを使用できます: https://github.com/onaluf/gameQuery/wiki/API-Changes-in- 0.7

于 2012-11-18T23:28:12.753 に答える