2

シンプルな Brick Breaker ゲームで問題が発生しています。ボール オブジェクトの簡単なアニメーションを作成しましたが、ページ上の他の要素と接触するタイミングを検出するのに苦労しています。言うまでもなく、プレーヤー タイルを作成したコンテナ div の外に移動させないようにすることはできないようです。プレイヤーのパドル、壁、レンガでボールが跳ね返るようにしたいだけです。

$(function(){
$(document).keydown(function(e){
    var Playerposition = $("#player").position();
    var Ballposition = $("#ball").position();
    switch (e.keyCode){
        case 37: //Left Movement
            $("#player").css('left', Playerposition.left - 20 + 'px');
        break;
        case 39://Right movement   
            $("#player").css('left', Playerposition.left + 20 + 'px');
        break;   
    }
});
var top = 275;
var left = 325;
var interval = 5; // time interval in milliseconds
var increment = 1;
var move = function() {
     if(left > 750) {
        increment = -increment;
     }
     if(left < 0) {
        increment = -increment
     }
    if(top > 325){
    increment = -increment; 
    }
    if(top < 0) {
    increment = -increment;
     }
    top = top + increment;
     left = left + increment;
     $('#ball').css('left', left + 'px');
    $('#ball').css('top', top + 'px');
};
setInterval(move, interval)});

Jqueryだけでなく、gameQueryもインストールしています。これは、現在の html/css/javascript を使用したこれまでの私のゲームです: jfiddle申し訳ありませんが、うまく一致しています。

4

2 に答える 2

0

衝突検出を gameQuery で機能させたい場合は、提供されている.x(),.y()または.xy()関数を使用する必要があり、スプライトの位置を直接変更しないでください.css()

これは、グループやタイルマップも含め、ゲームのすべての要素に当てはまります。

于 2014-01-14T21:43:13.837 に答える
0

ここにあります:

jQuery/JavaScript 衝突検出

detectOverlappingメソッドのソースを確認してください。

乾杯

于 2014-01-12T08:31:23.157 に答える