先上类图,略大,点击此处放大:
1.先说下方接口
1.1 场景物品接口 ISceneObject : OpLog.IOpItem, IStackPoolObject
所有场景对象的基本接口,包括类型定义,通用渲染接口,所在场景,子对象树,尺寸,坐标等..
1.2 游戏场景接口 IScene : ISceneObject
继承于基本场景接口,拥有添加对象,对象列表,获取相邻对象,等其他逻辑.
1.3 Buff基类 IBuff
buff表现,拥有持续时间,添加/删除/移动/开火/渲染/被击中时触发事件
1.4 爆裂物接口 IHitSceneObject
如果需要造成伤害/或者破坏物体,都需要先拥有一个爆裂物,爆裂物会检测爆裂范围内的接口,然后逐个进行碰撞.
1.5 可移动物品接口 IMoveSceneObject
拥有方向,速度,以及射程,继承此接口对象,当你设置一个速度,在每帧渲染时,都会移动,直到收到停止或最大可移动距离
1.6 可添加Buff对象 ICanBuffSceneObject
继承此接口物品可添加/移除buff,并受ibuff事件触发.
1.7 可使用装置接口(主动/被动技能) IDevice
分为2类一般,发射一个子弹,或者添加一个buff,或者两者都有
1.8 地图上可获取道具接口 IItem
仅参与碰撞,被碰撞后会对碰撞对象添加一个触发buff.
2.然后是上方buff,所有的对象修改功能大部分都是buff触发 无敌/武器升级/无法移动/减速/回血等..
3武器 装置和buff的关系
3.1 所有的buff有个持续时间,有一到两个可选参数.
3.2 所有武器都会发射子弹,所有子弹都会创建一个爆裂物,爆裂物可以对碰撞对象产生伤害和添加buff
3.3 所有子弹/爆裂物都有碰撞列表,仅会对有效的目标进行伤害和添加buff
4 游戏世界 GameWorld
4.1 每场游戏都是一个游戏世界
4.2 每个游戏时间包含一个场景
4.3 每帧这个世界会进行活动.通过fpstimer
4.4 不同的游戏世界有不同的游戏模式,通过继承GameWorld
5.渲染
5.1 基类实现,检查是否有子对象,然后进行子对象渲染(调用一次 ,对象有渲染等级,也就是渲染优先级,有些每帧渲染,有些每5帧渲染以此类推)
/// <summary>
/// 渲染
/// </summa