创建Eclipse游戏插件,第3部分: 启动游戏 - 编程入门网
了一个计时器,用来显示 “POW” 文本,并让虫子消失。现在我们学习在哪里放置碰撞检测的代码。
在哪里检测 既然已经知道了在碰撞检测中要做什么,现在就要把检测碰撞的代码添加到某个地方。可以把代码添加到虫子或 BB 弹(子弹)上。但是,子弹通常比虫子多,所以我们在 Bullet 类的计时器任务中做这件事,如清单 16 所示。 清单 16. 子弹负责检测是否击中了虫子
我们循环检查每个虫子,如果虫子没爆炸,也没死,就调用 checkShot,检查是否击中了它。下面来实现这个方法。 实现最简单的碰撞检测 现在进入碰撞检测算法的实质部分。checkShot 算法检测 BB 弹是否进入了虫子所在的立方体(如前所述)。请把这个方法添加到 Bug 类,如清单 17 所示。 清单 17. 虫子和 BB 弹之间的核心碰撞检测算法
首先,得到 BB 弹的确切(x, y, z)位置,然后得到虫子的中心点。接下来,通过加/减虫子的半径(在 Bug.RADIUS 中定义)得到构成立方体的六个点,每个轴两个点。现在有了必要的值,可以判断点(x, y, z)是否在虫子所在的立方体之中。如果正在检测沿着 x 轴的碰撞,那么在 x1 和 x2 之间(可以用 bx > x1 && bx < x2 计算)的虫子就会触发碰撞。对于其他两个轴,y 和 z 轴也如法炮制,这样就会知道 BB 弹是否落入虫子的范围内,并把布尔变量 blowup 设为 true。下一节介绍如何处理这个工作和启用破坏虫子的动画。 创建Eclipse游戏插件,第3部分: 启动游戏(8)时间:2011-02-10 IBM Tyler Anderson破坏虫子 如果我们击中了虫子,就需要触发让它爆炸的动画,显示 “POW” 文本,然后消失。 响应用户输入和事件 如果开枪击中,而被击中的对象什么也没发生,那么游戏不会让人兴奋和上瘾。所以,在游戏中对事件响应的方式要使游戏更兴奋、更好玩。在这个游戏中,我们要让虫子爆炸,显示 &ldqu |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |