HideAndSeek

一个使用了Swoole作为服务端,Vue作为前端展示的捉迷藏小游戏

效果图

运行方法

在app文件夹下运行php Server.php即可

使用工具

PHPStorm VirtualBox XShell Chrome

使用技术

PHP 7.2 Swoole 4.3.0 Swoole WebSocket Server Swoole Task Worker Swoole Static Handler Swoole Timer After Vuejs HTML WebSocket Redis String Redis List 少量算法逻辑

实现功能

捉迷藏游戏逻辑(逻辑) ★★

游戏管理类Game 玩家类Player 地图生成 玩家位置移动、边界判断

匹配机制(缓存) ★

使用WebSocket通信 发起Task进行匹配 使用Redis List存放匹配玩家 (可优化点:增加定时器匹配)

联机对战(网络编程、缓存) ★★★★

根据Code判断客户端和服务端消息类型 调用游戏管理类Game创建游戏 将游戏数据存放在全局Global变量中 每次发起移动都要发送游戏战局数据

游戏结束判定(逻辑) ★

两个玩家坐标重叠即为游戏结束

适配手机浏览器(前端) ★★★

监听键盘方向键(前端)★

绑定document.onkeydown事件

当前在线人数(缓存) ★

使用Redis Hash实现

玩家排行榜(缓存) ★

使用Redis Sorted Set实现

邀请玩家对战(网络编程) ★★

发送一条消息到对手客户端确认开战

游戏时间限制(网络编程) ★★

使用swoole_timer_after作为定时器

可扩展功能(比较懒)

观战模式:在游戏管理者Game中增加Watcher数组,订阅游戏消息(逻辑) ★★ 断线重连:断线后暂停接收消息(网络编程) ★★★ 记录游戏战局:结束后发起Task保存数据(数据库) ★★ 多人模式:参与时不限制人数(网络编程) ★★★ 随机地图生成:暂时只想到了多点随机路线拼接(算法) ★★★

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。