- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在用 Java 制作一个游戏,其中涉及角色在 map 上移动,并通过从文本文件中读取某些数据在 map 周围放置一些固体碰撞对象(即建筑物)。将有多个 map ,这些对象的位置将发生变化。 我的问题是用某种颜色绘制一个矩形,表示在此类结构后面发生碰撞或者读取鼠标坐标并搜索这些结构的数组以查看该点是否位于一座建筑物,因此拒绝移动或改变,更足智多谋和/或更快。如果画一个矩形是最好的,那么将它留在结构后面或在检测到碰撞后删除它会更好。感谢您的宝贵时间!
最佳答案
在大学三年级时,我研究了 Windows Phone 的碰撞检测系统算法。它并不完美,但非常高效,可以适应大多数游戏。
它的工作方式非常简单。有两种类型的对象;可碰撞对象(例如敌人或建筑物)和您希望检查与这些可碰撞对象是否发生碰撞的对象。
我在学习数据结构类(class)时产生了这个想法,我们谈到了链表。我想如果每个链接都是一个可碰撞的对象,您可以将已经在其中创建的游戏对象粘贴起来。然后当游戏对象四处移动时,您将有一种轻量级的方法来检查它们的位置是否发生碰撞。于是我的系统诞生了。
它实际上是一个在每个游戏周期或您选择检查碰撞时触发的类。你给它你的玩家位置,或者子弹位置或者你想要查看它是否与某物发生碰撞的任何对象,它会搜索所有可碰撞的对象位置并进行测试以查看它们是否重叠。
当您添加第二个元素(位置和象限)时,它的真正效率开始发挥作用
例如,如果我将手机屏幕分成几部分并且我知道我的玩家或子弹在哪个象限,我可以选择只扫描该象限内的可碰撞对象列表。从而将您的搜索算法减少到其原始大小的四分之一。
检测碰撞的方法有很多种。这是我在类里面使用的一个简单示例,用于展示如何检测两个实际上是正方形的圆碰撞。正如您所看到的,只需获取圆的中心点坐标和半径,您就可以计算斜边并确定它们在哪里或是否接触。
祝你好运!如果您有任何问题,请随时提出!
关于Java 更有资源的碰撞检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14764354/
我有一个功能是转换 ADO Recordset 进入html: class function RecordsetToHtml(const rs: _Recordset): WideString; 该函
经过几天的研究和讨论,我想出了这种方法来收集访客的熵(你可以看到我的研究历史here) 当用户访问时,我运行此代码: $entropy=sha1(microtime().$pepper.$_SERVE
给定一个无序列表 List ,我需要查找是否存在 String与提供的字符串匹配。 所以,我循环 for (String k : keys) { if (Utils.keysM
我已经搜索过这个问题,但没有找到我正在寻找的答案。 基本上,我想将类构造函数包装在 try/except 子句中,以便它忽略构造函数内特定类型的错误(但无论如何都会记录并打印它们)。我发现做到这一点的
我有一组三个数字,我想将一组数字与另一组数字进行比较。即,第一组中的每个数字小于另一组中的至少一个数字。需要注意的是,第一组中的下一个数字必须小于第二组中的不同数字(即,{6,1,6} 对 {8,8,
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
首先介绍一下背景: 我正在开发一个带有 EJB 模块和应用程序客户端模块的企业应用程序 (ear)。我还使用 hibernate JPA 来实现持久性,并使用 swingx 来实现 GUI。这些是唯一
我正在尝试在我的上网本上运行 Eclipse 以便能够为 Android 进行开发。 您可能已经猜到了,Eclipse 非常慢,并且不容易有效地开发。 我正在使用 Linux Ubuntu 并且我还有
for row, instrument in enumerate(instruments): for col, value in enumerate(instrument):
return not a and not b ^ 我如何以更好的格式表达它 最佳答案 DeMorgan's Law , 也许? return not (a or b) 我认为在这一点上已经足够简单了
我正在尝试让 Font Awesome 图标看起来更 slim https://jsfiddle.net/cliffeee/7L6ehw9r/1/ . 我尝试使用“-webkit-text-strok
假设我有一个名为 vals 的数据框,如下所示: id…………日期…………min_date…… .........最大日期 1…………2016/01/01…………2017/01/01…………2018/
是否有更 Pythonic 的方式来做到这一点?: if self.name2info[name]['prereqs'] is None: se
我有一个函数可以将一些文本打印到它接收到的 ostream&。如果 ostream 以终端为目标,我想让它适应终端宽度,否则默认为某个值。 我现在做的是: 从 ostream 中获取一个 ofstre
这个问题在这里已经有了答案: Should a retrieval method return 'null' or throw an exception when it can't produce
我有这个 bc = 'off' if c.page == 'blog': bc = 'on' print(bc) 有没有更 Pythonic(和/或更短)的方式在 Python 中编写? 最佳
输入:一个包含 50,000 行的 CSV;每行包含 910 列值 0/1。 输出:运行我的 CNN 的数据框。 我编写了一个逐行读取 CSV 的代码。对于每一行,我将数据分成两部分,称为神经元(90
据我所知,with block 会在您退出 block 后自动调用 close(),并且它通常用于确保不会忘记关闭一个文件。 好像没有技术上的区别 with open(file, 'r+') as f
我有一个使用 Entity Framework V6.1.1 的 MVC 5 网站。 Entity Framework DbContext 类和模型最初都在网站项目中。这个项目有 3 个 DbCont
我是编程新手,在尝试通过将 tableView 和关联 View 的创建移动到单独的类并将委托(delegate)和数据源从 VC 移动到单独的类来精简我的 ViewController 时遇到了一些
我是一名优秀的程序员,十分优秀!