多人即时战斗游戏服务端系列[2]--90坦克Online游戏对象介绍以及渲染机制

本文介绍了多人即时战斗游戏《90坦克Online》的服务端设计,涉及游戏对象接口如ISceneObject、IScene、IBuff等,以及渲染机制,包括 Buff 的触发、武器与 Buff 的关系、游戏世界逻辑和渲染优化,特别强调了线程池在渲染中的应用,以避免多线程锁操作。
摘要由CSDN通过智能技术生成

先上类图,略大,点击此处放大:



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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值