首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检测HTML5画布中任何形状的碰撞?

如何检测HTML5画布中任何形状的碰撞?
EN

Stack Overflow用户
提问于 2022-08-10 02:29:15
回答 3查看 130关注 0票数 -2

我试图构建一个HTML5帆布游戏,以便我将需要检测与不同形状的字符碰撞。

如果你对这种碰撞有足够的知识,请分享你的知识。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-08-10 03:05:18

正确的方法是使用物理引擎。就像:

https://brm.io/matter-js/

然而,对于一个简单的游戏来说,这可能是太过分了。以下是碰撞检测的基础知识。

  1. 您知道所有您控制的对象的坐标和大小。
  2. 在每次移动之后,获取每个对象的周长坐标。每个对象都将有一个点数组,将其perimeter.
  3. Compare标记为数组,并查看两个数组中是否存在相同的坐标。

这是最基本的。对于一个实用的游戏,您需要对此代码进行大量的增强。但你可以在这一步之后找出答案。

票数 1
EN

Stack Overflow用户

发布于 2022-08-10 02:39:51

取决于个人喜好。其中之一就是距离探测。

检查两个对象(或所述对象的和弦)之间的距离,如果足够接近,将其计算为命中。您也可以这样检查重叠,这是一个明确的命中。那就用你想申请的物理吧。

票数 2
EN

Stack Overflow用户

发布于 2022-08-10 13:58:13

HTML画布只负责通过web浏览器显示您的“游戏”。您需要利用一些编程逻辑来决定要在画布中呈现什么。就冲突实现而言,它将取决于您希望创建什么。

我们假设这是一个二维平面,物体向四面八方运动。在此假设下,一种实现可能是将位置坐标附加到游戏中的每个对象,并以“全局”游戏状态始终跟踪每个对象坐标。您可以对每个对象的位置执行计算,并触发满足特定阈值的对象之间的冲突。

实现可能因您希望构建的内容而异,但是this链接可能很有用。希望这能有所帮助!

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

https://stackoverflow.com/questions/73299987

复制
相关文章

相似问题

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