godot 服务器客户端设计中的精灵更新

cs 复制代码
/// <summary>C→S:玩家发出的操作意图(按键方向/目标点)。服务器权威计算真实坐标。</summary>
[MessagePackObject]
public class EntityMoveCmd
{
    [Key(0)] public long EntityId { get; set; }   // 我控制的那个
    [Key(1)] public float DirX { get; set; }      // 标准化方向向量(或0)
    [Key(2)] public float DirY { get; set; }
}

/// <summary>S→C:新实体出现在视野内(出生/进入)。</summary>
[MessagePackObject]
public class EntitySpawn
{
    [Key(0)] public long EntityId { get; set; }
    [Key(1)] public ushort TypeId { get; set; }   // 精灵类型:玩家/小兵/怪物...
    [Key(2)] public float IsoX { get; set; }      // 浮点坐标(允许像素级插值)
    [Key(3)] public float IsoY { get; set; }
    [Key(4)] public byte FaceDir { get; set; }    // 0-7 朝向
}

/// <summary>S→C:实体最新状态快照,多条打包。</summary>
[MessagePackObject]
public class EntityState
{
    [Key(0)] public long EntityId { get; set; }
    [Key(1)] public float IsoX { get; set; }
    [Key(2)] public float IsoY { get; set; }
    [Key(3)] public byte FaceDir { get; set; }
    [Key(4)] public byte AnimFrame { get; set; }  // 当前动画帧,0=idle
    [Key(5)] public byte Flags { get; set; }      // 位标志:1=移动中,2=攻击中...
}

/// <summary>S→C:实体消失(死亡/离开视野)。</summary>
[MessagePackObject]
public class EntityDespawn
{
    [Key(0)] public long EntityId { get; set; }
}

/// <summary>S→C:批量状态更新包(1条消息含多条 EntityState,降低 UDP 头开销)。</summary>
[MessagePackObject]
public class EntityStateBatch
{
    [Key(0)] public uint Tick { get; set; }       // 服务器 tick 号,客户端做插值用
    [Key(1)] public List<EntityState> States { get; set; } = new();
}
相关推荐
k4m7v2pz17 小时前
Godot 4 窗口拉伸黑边与变形:stretch 配置全解析
数码相机·游戏引擎·godot·2d游戏·黑边·stretch·画面比例
k4m7v2pz1 天前
Godot 4 仿 agar.io 卡顿优化:用空间网格把 30 万次碰撞检测降到几千次
性能优化·godot·游戏开发·碰撞检测·空间网格
k4m7v2pz1 天前
Godot 4 嵌入式试玩窗口尺寸与适配策略详解
编辑器·游戏引擎·godot·游戏开发·嵌入式运行
weixin_4046793114 天前
godot + vscode ai开发
ide·vscode·编辑器·游戏引擎·godot
松树戈17 天前
godot项目【宝石捕手】04~添加音效、记分
游戏引擎·godot
ue星空18 天前
【Godot】更换编辑器外观主题
编辑器·游戏引擎·godot
ue星空18 天前
Godot 2D像素游戏移动抖动、模糊问题解决方案
游戏·游戏引擎·godot
ue星空18 天前
【Godot】AudioStreamPlayer2D音频播放
游戏引擎·音视频·godot
松树戈19 天前
godot项目【宝石捕手】03~宝石刷新、游戏结束脚本逻辑
游戏·godot