【发布时间】:2012-04-11 04:40:27
【问题描述】:
我想学习如何为游戏开发中两个对象之间的碰撞情况创建良好的面向对象 (OO) 设计实践。
假设我有一个 SpaceShip 类和一个 Meteor 类。当 Meteor 与 SpaceShip 相撞时,SpaceShip 将被摧毁。
问题: 检查流星和飞船是否有碰撞的方法以及碰撞解决方法(摧毁飞船)应该放在什么类?是在 SpaceShip 类还是 Meteor 类?或者,也许我应该上另一堂课,即。 GameArea 还是 GameController 类?
注意:为简单起见,假设 Meteor 和 SpaceShip 是图像资源的形式。我习惯使用Java语言,但其他语言也可以。
【问题讨论】:
-
我会投票支持在
GameController(或管理您的游戏区域的任何类)中实现碰撞检测,在Meteor和SpaceShip(以及任何其他对象)上使用collidedWithObject(GameObject theObject)方法可能与事物发生碰撞)被调用以通知对象发生碰撞。 -
感谢您的投票。您是否知道任何关于面向对象游戏设计的好教程或书籍?