这些是我根据我喜欢以模型-视图-控制器风格构建游戏的方式对您的问题的回答:
(1)是的,我建议您以非常面向对象的方式构建模型,因为这是游戏中最符合逻辑的部分,也是游戏的核心。它是最容易构建的部分,同时它的结构会对构建游戏的过程产生重大影响。在构建模型以及它应该包含哪些部分时,一个很好的思考方式是这样思考:
“如果我要在两个完全不同的平台上制作同样的游戏,比如说 iPhone 和 Xbox,它们应该能够互相对抗——这两个游戏有什么共同的代码?”
完全相同的代码部分是模型。
在这种情况下,我会说它是这样的:GameBoard(或其他适合球弹跳区域的名称)、Paddle、Ball、Block 等。还有 Level、ScoreKeeper、GameHandler(用于跟踪游戏规则)、玩家(代表物理玩家的类)等可能是合适的类。
该模型跟踪与游戏规则相关的所有内容,例如游戏场上的球和桨的位置、速度等。
(2)你的 UI 类还有另一个任务——将你的游戏对象传输到 iPhone 上,以便用户可以看到、移动和听到它们。
有很多方法可以构建它。通常你不需要为你拥有的每种类型的对象都有一个 UIView 子类或一个 CCSprite (Cocos2D) 子类。毕竟,大多数情况下它们只是一个东西,一个精灵。然而,必须有逻辑将游戏世界中的对象位置转移到屏幕上的精灵。(即使为了简单起见,这里建议使用 1:1 的关系)
例如,每个游戏对象都可以引用一个精灵,或者您可以拥有一个包含所有精灵等的 GameScene 类。我建议尝试将事物拆分为某种结构,例如拥有一个绘制游戏板和游戏的类对象,另一个用于绘制 HUD,第三个用于绘制带有一些运动的漂亮背景等,但是这需要您具有某种层结构。
最后一件重要的事情是你有一个控制器,它有一个游戏引擎定期运行的更新方法,这个更新方法首先触发模型更新,然后触发 UI 绘制,以及用户进行互动。这是将所有内容绑定在一起的控制器。
我建议你也试试 Cocos2d。它可以帮助您掌握游戏编程中的许多概念。你会很快发现 Cocoa Touch 在哪些方面做得更好,而 Cocos2d 在哪些方面做得更好。