GameQuery碰撞检测无法正常工作

时间:2012-05-20 23:09:02

标签: jquery jquery-plugins gamequery

以下是我的代码。碰撞实际上是注册和执行的,但前提是你的船位于屏幕的右边缘,其中一个怪物在你身后。没有意义,我疯了。请帮忙。

演示:http://cosmati.net/biebsattack/test2.html 它输出游戏区域下方的任何碰撞,包括导弹和敌人的坐标。此外,随意笑,这只是游戏查询教程,增加了一些味道和装饰。 ;)编辑:此外,资产是巨大的,我知道。只是为了测试。抱歉加载时间。

        $.playground().registerCallback(function () {

            $(".playerMissiles").each(function () {
                //Test for collisions
                var collided = $(this).collision(".enemy,#enemies");
                if (collided.length > 0) {
                    var missilenum = $(this).attr("id");
                    var missilecoords = $(this).css("left") + ", " + $(this).css("top");
                    //An enemy has been hit!
                    collided.each(function () {
                        $("#lblCollisionLog").append(missilenum + " (" + missilecoords + ") collided with " + $(this).attr("id") + " (" + $(this).css("left") + ", " + $(this).css("top") + ") <br>");
                        if ($(this)[0].enemy.damage()) {
                            $(this).setAnimation(enemies[0]["explode"], function (node) { $(node).remove(); });
                            $(this).css("width", 99);
                            $(this).removeClass("enemy");
                        }
                    })
                    $(this).setAnimation(missile["playerexplode"], function (node) { $(node).remove(); });
                    $(this).css("width", 99);
                    $(this).css("height", 99);
                    $(this).css("top", parseInt($(this).css("top")) - 7);
                    $(this).removeClass("playerMissiles");
                }

            });
        }, 10);

1 个答案:

答案 0 :(得分:0)

我刚刚发现这是因为我使用不推荐的更新CSS的方法设置x,y坐标(selector.css(“left”,posx);)而不是新方法(selector.x)。 / p>

它现在正常运作。