代码之家  ›  专栏  ›  技术社区  ›  alex

这在JavaScript中是可能的吗?

  •  1
  • alex  · 技术社区  · 16 年前

    我想创建一个类似于 ElastoMania 在JavaScript中。

    我想知道,是否不可能使用潜水器进行碰撞检测,因为它们是方形的,游戏原理围绕着上坡行驶等等?

    这在画布上可行吗?

    另外,使用jquery之类的库会减慢JS游戏的运行速度吗?我注意到大多数游戏都是用普通的JS构建的,所以我有一个想法,使用一个库来处理这类应用程序(一个游戏)是一个坏主意。

    谢谢

    更新

    这似乎是一个复杂的游戏!我 可以 还是继续吧。如果有人想加入这个项目,请 contact me.

    5 回复  |  直到 16 年前
        1
  •  4
  •   harpo Binary Worrier    16 年前

    将模型与演示文稿分开。

    游戏逻辑和“物理”需要自定义脚本,与表示模型(即DIV)无关。

    您可能可以在演示方面使用jquery,但这是一个特殊的案例,性能密集型应用程序,而且,大多数游戏都是用“普通”脚本编写的。

        2
  •  1
  •   alex    16 年前

    如果使用canvas标签,这是非常可能的。

    http://developer.mozilla.org/en/Canvas_tutorial

    这是一款俄罗斯方块游戏,任何人都可以使用该游戏背后的库:

    http://tommysmind.com/gamejs/

    如果您正在寻找一些可能有帮助的库:

    http://openjsan.org/ (一堆任何人都可以贡献的图书馆)

    看起来这样的游戏是一个相当大的努力建立。它可能与超级马里奥兄弟的这种实现类似:

    http://nihilogic.dk/labs/mario/mario_small_music.htm

        3
  •  1
  •   Thomas Zoechling    16 年前

    This 是一个很好的javascript实现的球模拟器。
    也许你能从中吸取教训。 也许它可以用于您的项目中的轮胎碰撞检测。 这个演示表明,以合理的性能在JavaScript中实现物理模型是可能的。

    正如您可能已经知道的,有一个类似Elastomania的游戏的开源实现,叫做 X-Moto
    X-MOTO使用 ODE .

    编辑: 我刚刚发现了box2d的一个javascript实现: Box2D-JS

        4
  •  1
  •   alex    16 年前

    如果它在斜坡上行驶,我宁愿使用一个一维数组来存储每个点的高度,每次我需要检查玩家在地面上的位置时都会参考ID。所以,你基本上需要一个斜坡的图像,以及每个x对应的y-s集:

      ___
     /   ---
    /       ____
    

    024443330000…等。

    但是有一个问题:你不可能有理想的垂直边缘,因为它们需要每1x 2个Y点。

        5
  •  0
  •   erikkallen    16 年前

    您可以使用一个分区不同颜色的边框来获得坡度效果。

    <div style="border-left: solid 10px black; border-top: solid 10px red">
    

    将为您提供一个对角线边框,您可能会发现这一点很有用。

    推荐文章