文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
7 Android 坦克大战游戏设计解析七
本篇介绍坦克大战游戏中的主角,坦克类。游戏中坦克种类有多种,但主要特性大同小异。下图为游戏中定义的坦克类层次图。
图片 7.1 pic
Tank 为所有坦克类的基类,它定义了几个主要的方法。
think() 思考,如有 AI,算法在这里实现,对于简单坦克 SimpleTank,可能随机选择一步,而对 SmartTank 来说,向靠近玩家坦克的方向前进一步。
drive() 根据 Think 决定前进一步。
shoot() 根据当前条件决定发射一棵子弹。PlayerTank 由玩家和可同时发射的子弹来控制,Enemy 坦克一般随机控制是否要发射子弹。
基类每个游戏帧的操作如下。
/** * Operation be done in each tick. */ public void tick(){ if(isVisible()){ think(); drive(); shoot(); } }
派生类中 PlayerTank 和 SmartTank 逻辑相对复杂一些,FastTank,和 HeavyTank 都是 SimpleTank 的子类,FastTank 行驶速度较快,而 HeavyTank 可以承受多次子弹才会被击毁。
PlayerTank 中需要处理玩家按键事件,用于控制上下左右以及发射子弹,还要处理升级功能,如吃到增加宝贝。它的 public void upgrade(Powerup powerup) 用于处理升级功能。
而在 SmartTank 的 Think 方法,它要根据玩家坦克当前位置算出下一步的方向,以便可以不断向玩家坦克靠近,并发射子弹试图击毁玩家坦克。
这些坦克类都定义在 om.pstreets.game.battlecity.actors.tank,代码中有较详细的注释,这里不详细一一说明了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论