首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >画布与DOM元素游戏及碰撞

画布与DOM元素游戏及碰撞
EN

Stack Overflow用户
提问于 2014-01-12 00:03:54
回答 1查看 211关注 0票数 0

所以,我试着做一个小游戏,既为了练习,又为了好玩(我第一次尝试),以前从来没有和它有任何关系。

您可以看到我到目前为止尝试过的:http://myfirstgame.e-ddl.com/在这方面工作了大约6-8个小时。到目前为止,我意识到在继续之前我最好先问一问。

现在,我有一个主循环,每20毫秒左右运行一次。Ihis循环调用两个函数:

  1. 处理击键(遍历障碍数组并检查玩家的未来位置是否与任何障碍物物体发生碰撞,并将玩家的属性更改为未来的位置值)。
  2. 它遍历“需要更新”数组,并更改元素的CSS细节以反映所做的更改。

我有几个问题:

  • 以上是处理碰撞的好主意吗?如果不是,什么是更好的方式(我的意思是说,在大约800-1500个障碍物体在地图上,游戏慢下来)。
  • 为了计算距离,我使用两点之间的距离方程。如果我只有1分,角度和距离。我怎么能找到第二点的(x,y)?
  • 有什么更好的,画布还是多姆?(这不是一个重要的问题,因为我已经用DOM完成了)。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-12 23:52:48

谢谢大家。

我找到了我想要的解决方案。

关于碰撞,我这样做是完全错误的,我会列出正确的方式往下走。

关于距离--我想出的解决方案是检查玩家当前位置到目标的距离,如果玩家的步长比距离大,从距离中减去一步,然后走那个距离。

至于画布,对多玛-似乎都有他们的权贵和专业人士。

现在,对于冲突,正确的方法是创建一个像素映射数组。因此,如果您的画布或容器节点的宽度:800比高度:500,则将有一个表示这些pixes的2d数组。

然后,当我检查位置时,我只需检查玩家当前的位置+走向未来位置的步骤是否有一个对象。

就像:

代码语言:javascript
复制
if(array[300][500]){
    return false;
}

这就是我发现的。

如果有人有更好的解决办法,那就告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21069541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档