类层次关系如下
思路是:
塔防层 组合 逻辑类与UI控制类,确保数据与显示正确的逻辑
UI控制类 用于控制 怪物 塔 子弹 图片及动画 运动
UI下的 怪物 塔 子弹 类用于控制 图片 和 动画的生成
逻辑类 用于 计算 怪物 塔 子弹 之间的游戏逻辑,比如怪物撞到塔了减血,塔发射子弹了(位置、目标、攻击力等),怪物被攻击了(击中没、受多少伤害、是否触发死亡效果等) ,就诸如此类的逻辑。
逻辑类下的 怪物 塔 子弹 类用于封装他们自己的逻辑数据
逻辑类,拥有一套属于 塔 怪物 子弹 的 逻辑属性,比如移动速度,攻击力等。
UI类,也有一套UI属性,比如图片boundingBox() (是否需要修正,是所有修正,还是个别修正),怪物移动动画是否协调(两帧播放一张?或者三帧播一张?)
这样写分离了 UI 和 逻辑
但是 你一个对象类型,拥有 两个类型去描述,这样是不是破坏了面向对象的封装原则。
比如怪物类,移动速度,攻击力,位置,图片,动画,这些属性 都是属于怪物本身的,对外应该是不可见的,外面能看见的应该只是封装后的表现。
如果分UI 和逻辑来写游戏,是不是就破坏了面向对象的规则呢??
还有我这个类框架对于塔防游戏模块,是否合适??有没有更好的办法??
有经验的大神指导一下哈,写代码,写着写着出现了这种迷惑,突然就无法下手了,怕写完了,又要被全部推导从来,希望在重来之前,把疑惑扼杀在苗头期。