简单的游戏引擎碰撞实现

时间:2013-07-05 06:52:35

标签: javascript canvas

不久之前我问了一个关于how to make a nice collision effect的问题,但我得到的唯一答案是“不要试图重新发明,使用其他东西”,但这不是,我需要的东西:)

所以,我正在写这个2d-top-view train sim,这里的目标是在不使用第三方解决方案的情况下从头开始编写“简单”引擎。这是我的第一个项目,我只是在学习。如果我的“引擎”有任何全局缺陷阻止我实现我想要的东西,请指出它,并解释错误,或至少在哪里找到有关此主题的信息!

我以前的冲突计算代码是:

function moveCollided(){

    for (var i = 0; i < trainCount; i++) {
        var banged = calcCollision(window["train_"+i]);
        //console.log(banged);
        if (window["train_"+i].hit){
            window["train_"+i].speed -= (window["train_"+i].speed/3);
            for (var j = 0; j < banged.length; j++) {
                window["train_"+banged[j]].speed += calcSpeedIncrement(window["train_"+i],window["train_"+banged[j]]);
            }
        }
    }

    setTimeout(moveCollided, 15);
}

现在我正在尝试其他一些东西,但它仍然无法正常工作。据我所知,现在问题是逐个计算每个实体。当然,Javascript是一种脚本语言,但由于已经有几个物理引擎写在其上,显然是我找不到的解决方案。

我并不是真的要求解决方案,因为之前没有人能够提供解决方案,但至少建议阅读有关此主题的内容。

如果有人仍想帮助解决问题,请从上面的链接查看游戏的源代码。当然,有比我在这里给出的代码更多的代码。如有必要,我会向您提供有关代码的解释,只需询问:)

对不起,这个问题更像是一声求救,但我一直在代码中苦苦挣扎一周并绝望

0 个答案:

没有答案