0

私はゲームを作っており、現在スプライトを動かそうとしています。特定のdivの外に出られないようにする必要があります。上または左の距離が 0px より小さいかどうかをチェックする関数を作成しようとしましたが、うまく機能しません。

問題:

1) スプライトは境界線の内側で十分に停止していますが、これは停止するはずの場所ではありません。

2) スプライトが端に到達したらアニメーションを停止する代わりに、スプライトは完全に停止する前に速度を落とします。停止する実際の場所は、数ピクセル上下することがあります。

3) スプライトが特定の場所に到達するとスタックし、離れられなくなります。

主な機能は次のとおりです。

var cstop = false;
    function colCheck() {
        if (
            (char.css("top")<"0px") ||
            (char.css("left")<"0px") ||
            (char.css("top")>"500px") ||
            (char.css("left")>"800px")
        )
        {
            cstop = true;
        }
    };

cstop 変数は、矢印キーが押されるたびにチェックされます。

コードをいじってみましたが、思い通りに動かない理由がわかりません。関連するコードを含む jsFiddle: http://jsfiddle.net/VYkbR/13/

4

1 に答える 1

0

このように を置き換えてpxから比較したくない場合があります。

var left = (+ char.css("left").replace('px', ''));

それからする

if(left < 0) {
    // code here..
}
于 2013-09-09T00:25:07.803 に答える