改进飞碟(Hit UFO)游戏
- 游戏内容要求:
- 按 adapter模式设计图修改飞碟游戏
- 使它同时支持物理运动与运动学(变换)运动
改进内容
-
adapter模式
- 概念简述:适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。
- 分类:类适配者模式和对象的适配者模式
- 运用分析:在本游戏实例中,由于我们想要继续沿用上次的基础版ActionManager,并且新增一个管理物理运动的PhysicsActionManager,这时在FirstControl里就需要同时有两个变量分别指向这两个动作管理器了。而这样会造成FirstControl需要管理多个功能相同或类似的组件,如果未来还想加多几个动作管理器,就会显得越来越臃肿,可扩展性很差。所以我们希望FirstControl里只保留一个可扩展的变量,这里就用到了adapter模式。
- UML图(盗用)及其解释说明
对动作管理运用类适配者模式,在原有的运动学适配器CCActionManager的基础上增加物理运动适配器PhysiscActionManager。由于适配器模式的多态的设计要用到接口,所以这两个适配器实现了同一接口ActionManager。 ActionManager提供了一个简单动作方法,用于执行抛出飞碟的动作。
-
代码实现
简单来说,上次作业实现的动作是运动学的运动,而这次新增的是物理学的运动。主要新增和更改的内容有:-
PhysiscActionManager
PhysiscActionManager与CCActionManager的不同仅仅在于将Update改成FixedUpdate
-
由于PhysiscActionManager要用到FixedUpdate方法,所以要对SSAction、SSActionManager添加FixedUpdate,方法与Update相同,除了把其中包含的Update换成FixedUpdate。
SSAction
SSActionManager
-
UserGUI新增一个控制模式转换的按钮
-