物理系统与碰撞

改进飞碟(Hit UFO)游戏

游戏内容要求

  • 按 adapter模式 设计图修改飞碟游戏
  • 使它同时支持物理运动与运动学(变换)运动

adapter模式

适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。

该模式的主要优点如下。
客户端通过适配器可以透明地调用目标接口。
复用了现存的类,程序员不需要修改原有代码而重用现有的适配者类。
将目标类和适配者类解耦,解决了目标类和适配者类接口不一致的问题。

其缺点是:对类适配器来说,更换适配器的实现过程比较复杂。

物理运动

一个游戏对象加上刚体之后游戏引擎就会对其进行物理效果模拟。同时我们也可以给这个对象施加各种作用力,让它运动起来。另外如果要实现重力的效果,那么相应的游戏物体都必须附上刚体组件。

实现思路

要求按adapter模式,所以需要抽象出两个动作管理类在FirstSceneController类中使用的方法,作为一个接口IActionManager。其中CCActionManager类基本不变,再添加一个物理运动的类PhysicActionManager。

  • 在SSActionManager类中添加一个属性flag,用来决定该使用哪个子类的方法。
  • PhysicActionManager类与CCActionManager类类似,继承了SSActionManager类。需要在start()函数里添加对flag的修改,来反馈该使用哪个方法。
  • 在FirstSceneManager类中修改动作管理器的类型为接口IActionManager,添加某些方法来影响IActionManager的具体实例。
  • 在UserGUI中添加按钮代码给用户选择使用哪一种方式来使飞碟运动。
  • 在DiskFactory中为新生成的对象添加刚体。

github代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值