使用VSCode去定义
创建一个PB文件
syntax = "proto3";
package pb;
//登录数据
message Login {
string account = 1;//账号
string roleType = 2;//职业类型
}
//玩家
message Player {
string unid = 1;//玩家id
string account = 2;//玩家账号
string roleType = 3;//玩家职业
float px = 4;
float py = 5;
float pz = 6;
float rx = 7;
float ry = 8;
float rz = 9;
string roomId = 10;//玩家所在房间的id
int32 collectCount = 11;//采集蘑菇的数量
string collectId = 12;//采集蘑菇的id
}
//主城玩家列表
message MainCityPlayersLst {
repeated Player mLst = 1;
}
//房间信息
message Room {
string rId = 1;//房间id
string rName = 2;//房间名称
int32 rNum = 3;//房间限制人数
repeated Player rPlayersLst = 4;//房间玩家列表
}
//返回的房间列表
message RoomLst {
repeated Room rLst = 1;//房间列表
}
//房间内玩家列表
message RoomPlayersLst {
repeated Player mLst = 1;
}
//蘑菇
message MushRoom {
string unid = 1;//蘑菇id
float px = 2;//位置
}
//蘑菇列表
message MushRommLst {
repeated MushRoom mr=1;//蘑菇列表
}
一、如何定义PB
1.根据界面数据
2.根据逻辑需要
3.不要定义不用的多余的数据
二、沾包处理需要注意的
1.如何拼装消息:
1)消息的形式:(长度(消息头) - 消息ID - PB)
2)注意形式每一个部分所占的字节,即消息完整的拼装
3)注意消息copy时的数字和索引
4)拼装消息时完整消息字节数组初始化时长度是0
三、网络通信解题指南
1.快速通读需求
2.提取考察的核心知识点
1)网络通信框架
2)提取同步信息,信息提取后,开始针对信息做数据,根据数据定义PB结构
3)定义消息ID
4)开始进行逻辑的编写
四、如何解决bug的基本流程
1.猜测产生bug的原因
2.对猜测进行验证
3.定位到bug出现的位置
4.根据bug找到对应的解决方案
5.针对找到的解决方案进行快速的验证
五、房间开发
1.主动性,如何去写
1)先创建房间(注意:创建房间时加入房间处理中心,遍历房间列表数据)
2)刷新房间列表
3)加入房间
4)离开房间