联机游戏的前后端交互逻辑(Cocos)【第一章 单机Data and Event】

首先感谢B站的大佬博主Sli97的教学视频。不适合小白观看,但是这个大佬码力深厚,代码优美如诗,有一定基础的可以反复观摩学习。

联机游戏跟单机游戏最大的不同在于联机需要实时同步多个客户端的数据。

要研究清楚联机游戏的前后端交互逻辑,应该先了解单机游戏的运行逻辑。

单机游戏的执行逻辑

这里介绍一种数据驱动的游戏框架。

(一)建立游戏State

state表明了当前客户端内所有可变元素的状态。如玩家有血条,位置,方向,速度等,子弹有位置,方向,速度,造成的伤害等。我们通过建立一个state,维护所有可变元素的状态。

export interface IState{
    actor:IActor
    bullets:IBullet[]
    nextBulletId:number
}

export interface IVec2{
    x:number
    y:number
}

export interface IActor{
    id:number
    position:IVec2
    direction:IVec2
    hp:number
    speed:number
}

export interface IBullet{
    id:number
    owener:number
    position:IVec2
    direction:IVec2
    speed:number
}

以上是一个简单的示例,栗子中我们建立了IState这个接口用来管理全局游戏中的所有实体对象。

state : IState = {
    actor:...
    bullets:[
    {...}&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞猪0_0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值