用户:
𝙲ℴ𝗌𝔦𝒹ₑ𝑟查看:18 回复:10 评论:18 创建时间:2023-02-11T11:10:45
1.联机的 过程&概念
大家手机中一定有不少联机游戏
链接wifi,打开游戏就能玩上好几小时
其中:
玩家先登入服务器,
并发出联机请求,
这是第一步骤。
服务器寻找房间,
并将消息告诉手机用户(usr)
然后开启联机。
服务器持续返回房间游戏数据(每个玩家状态,地上物品位置种类,等)
手机负责解析并应用这些数据“组装”成你看到的游戏场景
2.问题
k/n(kitten/nemo的简称)端支持云端存储
有不少人通过云端支持实现了联机
但他们对这些功能又不太了解
所有进展仅停留在 单房间 或 一云一房间
利用率不足一半
--如果你们看过我之前的教程你会知道为什么--
k/n拥有云端但仅限存储
说明所有操作需要在玩家那完成
就像“少”了一个环节:服务器
更或者说,玩家===服务器
这意味着我们需要协调每个玩家之间的操作?
不,模拟服务器的操作!
只需要一堆如果否则
3.开始制作!
几个云变量(无云列表)

作为房间专用(8*1024=8192字符)
根据数据级别理念(主要到次要,每一级别包含几个类别的信息,易于管理)
准备3级列表

他们可以解析成以下:


甚至更多。
一些必要的工具
快捷解析:

提升利用率的“好法子”


*此方法叫串联法:把多个云变量当做一个大云变量使用*
设计以下(请根据你的需要设计而不是照搬)
数据格式
每两项为 1房间 (以“;”做分隔符)
不考虑用户名不规范
编号,限人数,密码(0为无),玩家数据,(房间2)
玩家数据:
名称;id;游戏状态;位置x;y;持有物品;使用物品;开火?; (玩家2);(玩家3);...;聊天内容
持有物品:
物品1'物品2'....
聊天内容:
聊天长度,聊天内容,(聊天2),(聊天N)
其中 编号、密码、人数上限 均为 数字类型
如果你不会设计数据,可参看上一篇教程喵community/514294
从 数据格式 中可推算出
玩家的位置=
我们规定一玩家等于8个项
所以一个玩家= 该房间第一个id位置至后7项
3.1 重现匹配

bcm设置名称名称规范因为某些名称会“干扰” 把(字符串)按“,”分成列表 积木“正常”运行
让你解析到什么奇奇怪怪的东西
(假设有个用户名是yard/o,按“/”分列表,数据“21/1803/yard/o”会解析成3项而不是4项,你是无法预知或调整的)
但没什么用,仍然有很多用户名包含奇奇怪怪的字符
所以我们需要“规范”它们

联机时各种情况都有
云端清空和房间都满时告诉告诉新建一个
而空间不够是告诉玩家不能创建房间
普通匹配时翻找每一个房间,有空就进,没空下一个

人多时每个人都抢位置
有时候两人抢一位置,一人预定但另一人还不知,于是第二个覆盖了第一个的记录
导致“一位占两人”(两个玩家操控一个角色)
而系统不知
设一个计时卡


你抢到一个,预定看一会还在不在
如果在,你开始游戏,
不在,自己只能认倒霉
如果没有房间了,自己根据房间模板创建一个




---------------------
作者:quast
用时:1h