学习目标:
**整体流程如下: **
具体操作步骤本文不做详细叙述,主要描述各部分的功能。
**
一:游戏介绍:
**
游戏规则:
**
二:黑白棋对战代码介绍:
**
2.0服务器端代码介绍:
第1个代码片段是服务器端监听端口,也就是监听客户端,io点people的初始值为0,但服务器端接听到有客户端接入时,io流中的人数就增加1,也就是io people++当客户端,离开时io流中的人数就减1,也就是ill people–。
匹配时先来者标技上set stand,black,即为黑子,也就决定了先手权;后来者标记set stand ,white,后手。
2.1客户端代码功能:
来介绍一下帮助大家理解我们游戏的主体逻辑,第1部分,我们先来介绍一下消息的同步逻辑先由服务器决定,先手方若此,等乙方客户端判断逻辑完毕后,登录此消息发送到服务器端,服务器端再将消息同步至另一客户端。这里落子消息通过后,由客户端判断游戏的胜利,单纯的游戏胜利,如积分录像等需要同步至服务器,意外是中途退出包括掉线的,都视为认输,另一方客户端获得胜利。
第2部分的代码是关于场景的初始化,初始化分为三步走,第1步是将期盘上所有的棋子节点实例化,节点实例化以后,8×8的期盘就画好了,并且在节点中添加了触摸事件chesstouch event,该事件主要判断能否落子。
在第3部分的代码是在中央位置放置初始棋子,放置四颗黑白相间的棋子(游戏开始基础)
绘制棋盘:
若成功落子,则要将落子消息发送到服务器端,再由服务器端将消息派发给客户端:
更新棋盘,交换回合,强制交换回合和玩家离开:
八个方向进行判定,符合条件就将棋子更改为己方的颜色。若己方无棋可走,另一方有棋可走,则强制转换棋权到另一方。
**
三:黑白棋通信逻辑
**
3.1
需求:实现两名玩家的黑白棋对战。
匹配阶段:所有接入服务器的客户端视为连入一个大厅hall,当客户端发送匹配请求时,使其加入匹配队列queue,在匹配队列中的人数达到2人时,即令此二人进行游戏对局,新建一个房间room。
3.2
服务器客户端逻辑: