基于ComblockEngine+Unity的联机版坦克大战(二)

编程入门 行业动态 更新时间:2024-10-06 01:43:58

基于ComblockEngine+Unity的联机版<a href=https://www.elefans.com/category/jswz/34/1770034.html style=坦克大战(二)"/>

基于ComblockEngine+Unity的联机版坦克大战(二)

文章目录

    • 阶段目标
    • 效果演示
    • 单机版的结构
    • 联机版的结构
    • 战场的跳转
    • 移动同步
    • 存在的问题
    • 后续内容
    • 源码地址

阶段目标

  • 从大厅进入战场
  • 客户端修改为双人版本
  • 战场内移动同步的实现

效果演示

单机版的结构


GameManager作为一个全局的游戏管理器存在,每个具体的坦克是由TankManager类来进行管理,其中,坦克具体的移动和射击逻辑是分别交由TankMovment和TankShooting去完成。

联机版的结构


联机版和单机版在类的设计实现上是一样的,主要区别也就下面几点:

  • TankManager交由PlayerAvatar来持有,因为联机时,我们每个角色的数据创建时由server来驱动的,与server对应的玩家实体是PlayerAvatar,这个PlayerAvatar相当于是一个真实的服务器一致的逻辑数据实体。
  • 区分出主玩家控制的坦克角色和其他非主玩家坦克

战场的跳转

这类开房间式的游戏,都会涉及到一个从大厅跳转战场的流程。坦克大战也是一样,我们的战场和大厅在这个版本里面都是SpaceRoom这一个类来完成,只是战场和大厅的uType值不同。

class SpaceType(object):SPACE_TYPE_NONE = 0SPACE_TYPE_HALL = 1SPACE_TYPE_BATTLE = 2

在完成匹配后,我们会申请创建一个战场space,并且在space创建完毕后,让base上的playAvatar一个个enter进space,在enter到space上时,会先离开大厅这个space,然后调用playAvatar在cell部分的onTeleportSpaceCB方法,该方法主要做一件事情,就是让玩家teleport到战场所在的space。

跳转战场的时序图如下:

更多推荐

基于ComblockEngine+Unity的联机版坦克大战(二)

本文发布于:2024-02-28 12:48:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770038.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:坦克   大战   ComblockEngine   Unity

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!