用Swoole来写个联机对战游戏呀!(一)前言

栏目: PHP · 发布时间: 6年前

内容简介:话不多说,我们先上一个游戏的最终效果图给大家看看:没错,就是紧张刺激的捉迷藏小游戏。本课程的源代码在

话不多说,我们先上一个游戏的最终效果图给大家看看:

用Swoole来写个联机对战游戏呀!(一)前言

没错,就是紧张刺激的捉迷藏小游戏。

本课程的源代码在 github.com/Zhao-666/Hi… 上面,童鞋们可以提前在自己的机器上运行游戏,体验一下游戏的感受,或者参考一下代码。

技术预备需要有如下几点:

  • 熟悉 PHP 基础语法
  • 使用过 CentOS ,懂得安装 PHP 开发环境
  • 看过 Swoole 文档但缺乏项目经验
  • 了解 VueJs 基础语法或有其他前端框架经验
  • 开发 工具 推荐使用 PHPStorm

项目使用了如下技术:

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

实现了:

  • 捉迷藏游戏逻辑(逻辑) ★★
  • 匹配机制(缓存) ★
  • 联机对战(网络编程、缓存) ★★★★
  • 游戏结束判定(逻辑) ★

可扩展功能(比较懒就没做):

  • 当前在线人数:使用Redis Set保存在线人员(缓存) ★
  • 排行榜:使用Redis SortSet(缓存) ★
  • 观战模式:在游戏管理者Game中增加Watcher数组,订阅游戏消息(逻辑) ★★
  • 邀请对战:往被邀请人发一条消息确认开战(网络编程) ★★
  • 多人模式:参与时不限制人数(网络编程) ★★★
  • 随机地图生成:暂时只想到了多点随机路线拼接(算法) ★★★
  • 优化地图展示:手机适配(前端) ★★★★★★★★★★★★(这个真不会。。)

大纲

本次教程将会分为两个部分。

  • 第一部分占用三章的幅度,主要讲解游戏逻辑的编写,我们会先制作出一个单机版的服务端逻辑,让电脑随机行走测试代码有没有问题。
  • 第二部分占用六章的幅度,这里将会分为两个主要功能,分别是:接入 Swoole 作为网络层和使用 Vue 写一个简单的前端页面,让游戏能够满足两个玩家联机对抗。当然,并不是直接就把服务端全部代码写完,然后再跑去写前端这么粗暴,两个部分的代码都是按照项目的开发流程一点一点往里填。

课程最后只实现了上面写的已实现功能,可扩展功能也列了几项并附注了温馨提示,相信学完后童鞋们自己就能实现可扩展功能啦。

本次课程的主要目的就是好玩,并且还能顺便学习一下 SwooleWebSocketVue 的使用,希望童鞋们看完会有一丝收获。

学习方法

大部分的代码编写我都会预先把功能需求用文字罗列出来,再给出代码实现,像下面这样:

  1. 这个类需要有XXX功能
  2. 这个类需要保存XXX变量
  3. 这个类XXXXX
<?php
class XXXXX
{
    private $xxx;
    
    public function xxx()
    {    
    }
}
复制代码

童鞋们尽量尝试通过赵童鞋给出的需求自己动手编写代码,而不是一上来就整段整段的复制,这样学习效果会好很多,变量命名、方法命名不一样是没关系的,只要能够满足功能,当然,想不出的时候偷瞄一眼也是可以的๑乛◡乛๑。

在Github上代码有两个分支,master分支为赵童鞋开发时的提交分支,teach分支为课程每章结束时提交的代码分支。为什么会区分两个分支呢?就像上面说的,实际项目开发的时候都是往一个大方向走,总有考虑不周的情况,所以代码就会删删减减的,用来教学就会前后代码不一样。但是这样的代码提交却更加真实,有兴趣的童鞋可以试着看看master分支。

下一章节开始正式学习,童鞋们准备好了吗?

用Swoole来写个联机对战游戏呀!(一)前言

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

因计算机而强大

因计算机而强大

[美]西摩 佩珀特 Seymour Papert / 梁栋 / 新星出版社 / 2019-1 / 38

本书有两个中心主题—— 孩子可以轻松自如地学习使用计算机; 学习使用计算机能够改变他们学习其他知识的方式。 (前苹果公司总裁 约翰·斯卡利) 最有可能带来文化变革的就是计算机的不断普及。 计算机不仅是一个工具,它对我们的心智有着根本和深远的影响。 计算机不仅帮助我们学习 ,还帮助我们学习怎样学习。 计算机是一种调解人与人之间关系的移情对象。 一个数学的头脑......一起来看看 《因计算机而强大》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具