0

我正在尝试使用碰撞()处理游戏中的碰撞,但我不明白发生了什么。这是一个摘要:

    $("#screen").playground({height: PLAYGROUND_HEIGHT, width: PLAYGROUND_WIDTH});
$.playground().addSprite("wall",{animation:anim_mur, posx: 0, posy: -100, width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT+300})
    .addSprite("table",{animation:anim_tableau, posx: 459, posy: 122, width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT});
$.playground().addGroup('enemies', {width: 320, height: 280}).end()
            .addSprite("sp_bed",{animation:anim_bed, posx: PLAYGROUND_WIDTH-400, posy: 210, width: 320, height: 280})

然后我处理那里的碰撞

$("#sp_viseur").collision("#enemies").each(function(){
    alert('test');
    });

我在另一个函数中用精灵填充“敌人”组。我希望在“sp_viseur”精灵与“enemies”组的精灵碰撞时调用该函数。但该函数从未被调用!我又运行了一些测试,所以我有一个问题:“碰撞”函数如何工作吗?它使用 css 属性(左、上...)还是 gamequery 属性(posx、posy)?

谢谢。

PS:“sp_viseur”像其他精灵一样添加到操场上。

4

1 回答 1

1

抱歉,我意识到我的答案并不完全符合您的要求:

.collision() 不会返回与组的碰撞,因此您必须向 .collision 选择器添加一个将应用于所有敌人精灵的类,例如 .collision('#enemies,.enemies')。Gamequery 使用 posx 和 posy 属性,但如果您使用 .x() 和 .y() 函数,它们应该是同步的。

于 2012-04-08T08:57:36.717 回答