1

動作しません。トゥイーンされたオブジェクトが 'Moved' イベントを発生させないようです。

画面全体でオブジェクトをトゥイーンしており、プレーヤーと衝突したかどうかを確認する必要があります (キーボードイベントによって上下に飛びます)。プレーヤーの「移動」にチェックを追加すると機能しますが、プレーヤーが静止している場合はどうなりますか:-)

そのため、トゥイーンされたオブジェクトがプレーヤーに当たった場合に移動するタイミングを確認する必要があります

次のイベントは発生しません。

        // astroid
        Crafty.e('astroid, 2D, DOM, Color, Tween, Collision')
            .attr({ x: 600, y: 550, w: 50, h: 200 })
            .color('#8e44ad')
            .tween({ x: -50 }, 4000)
            .bind('Moved', function () {

                console.log('moved');

                if (this.hit('player1')) {
                    console.log('player hit 1');
                }
            })
            .onHit('player', function () {
                console.log('player hit 2');
            });
4

2 に答える 2

0

更新しました :

pluginここではほとんど使用していませんcollisions($div1, $div2)

そう、

 function interval() {

   timeout = setTimeout(function () {

        if (collisions($('.player1'), $('.astroid'))) {
           alert('true');

        }
        else{
            interval();
        }
    }, 25);

 }

 interval()

ワーキングデモ

これは役に立ちましたか...

于 2014-03-06T12:49:29.673 に答える
0

「移動」は、「マルチウェイ」などのコンポーネントが使用する特別なイベントです。

より基本的なイベントは、 2D コンポーネントによって直接実装される "Move" です。代わりに、そのイベントにバインドします。

多くの人が行うことは、「EnterFrame」を使用してフレームごとに 1 回だけ衝突をチェックすることです。ただし、衝突の直後に行動する必要がある場合は、「Move」にバインドするとそれが提供されます。

于 2014-03-08T19:40:35.600 に答える