Javascript 对象冲突HTML5画布

Javascript 对象冲突HTML5画布,javascript,html,canvas,collision,Javascript,Html,Canvas,Collision,我正在用HTML5画布制作一个平台游戏。我还没有一个主角,所以我现在用的是一个球。我正在努力使球不能通过草地挡块。我使用一个列表来保存地图的值,然后使用两个if语句将列表的值转换为地图,因此我不知道如何检测球和草球之间的碰撞,因为草块可能位于地图上的任何位置 我的问题是:我如何在不硬编码的情况下在球和草块之间进行碰撞,它需要快速,如果我需要库,请展示一个在我的情况下如何使用它的示例 我的代码在这里:这是您的问题的基本解决方案,您可以从中构建: 总之: 我创建了一个新的多维数组,名为level

我正在用HTML5画布制作一个平台游戏。我还没有一个主角,所以我现在用的是一个球。我正在努力使球不能通过草地挡块。我使用一个列表来保存地图的值,然后使用两个if语句将列表的值转换为地图,因此我不知道如何检测球和草球之间的碰撞,因为草块可能位于地图上的任何位置

我的问题是:我如何在不硬编码的情况下在球和草块之间进行碰撞,它需要快速,如果我需要库,请展示一个在我的情况下如何使用它的示例


我的代码在这里:

这是您的问题的基本解决方案,您可以从中构建:

总之:

  • 我创建了一个新的多维数组,名为
    level1CanMove
    ,为球可以移动和不能移动的位置提供参考
  • 我使用了您已有的
    ballLocationCol
    ballLocationRow
    值(但已注释掉),以确定球当前已结束的分片
  • 然后,我们通过新的
    canMoveHere
    功能检查球是否可以越过当前磁贴,如果不能,则反向
N.B.
如果你只是为了学习而进行这个项目,请务必自己编写碰撞检测代码。但是,如果没有,你可能会发现使用游戏引擎更有效,正如一些评论者已经建议的那样。

你基本上需要检查他们是否在游戏运行时击中自己。我建议使用游戏引擎:或者你需要建立自己的碰撞系统(一点数学知识,但不是太难),或者使用现有的游戏引擎。有一些很好的例子,看看“Phaser”,它能处理的不仅仅是碰撞,因为你想利用它所能提供的优势。看看这个碰撞测试的例子。我不知道它和我有什么关系,但我宁愿在不需要的时候不使用库。但我认为这应该行得通。我以前使用双数组来制作地图,但我开始使用单数组是因为我上了一门课,所以谢谢你!