⭐零、教程概述
效果最接近《羊了个羊》(卡牌堆叠游戏)的开源代码,有数据库和关卡。
我写的程序是指 卡牌堆叠游戏 ,效果与羊了个羊一致。本教程有已有两个版本。
本来是想着Fork多一点的时候再开源的,没有想到一个Fork都没有。
现在是 微信小程序 版本。
我就不在这里吐槽微信小程序的 Canvas 效率低了。
懂得都懂。
这个版本使用
WX 使用 Javascript
+ PHP
+ MySql
实现。
其他版本请转链接:
效果最接近《羊了个羊》(卡牌堆叠游戏)的开源代码:https://blog.csdn.net/apple_53792700/article/details/127255790
旧的使用:
PHP 使用 PHP
+ H5
+ CSS
+ JS
+ MySql
实现。
H5 使用 H5
+ CSS
+ JS
实现 。
♾️各版本的区别
PHP 与 WX 都是调用接口获取 地图 与 地区排名。而 H5 是写死的文件。
WX 是实时刷新的动态界面 ,刷新频率约为 60次 每秒,也就是 60fps ,而 PHP 与 H5 均为需要动的时候才动,比如点击卡牌时,并无固定刷新频率。
WX 是依赖与 PHP 的,也就是说 如果你需要搭建 WX版本的你就得先搭建好 PHP版本的。
PS:除非你调用我的接口,也就是说你WX的源码动都不动一下。
⭐零·壹、代码获取
CandyMieGame_WX(注意获取V0.0.0
版本的代码):
Github: https://github.com/MR-XieXuan/CandyMieGame_WX
一 、⭐逻辑的实现
♾️1.1 JavaScript 语言的内核实现
逻辑实现是在 PHP 版本里面原封不动的搬过来的,仅改了一下兼容性。
方法 与 变量命名均一致。
二、⭐配置CandyMieGame_WX并运行代码
♾️2.1 PHP 后端
配置 PHP后端 部分可以查看下面这篇文章的配置PHP代码部分:
效果最接近《羊了个羊》(卡牌堆叠游戏)的开源代码:https://blog.csdn.net/apple_53792700/article/details/127255790#211_CandyMieGame_PHP_122
♾️2.1 微信小游戏
使用微信开发者工具导入,导入后需要
修改 js/Servo/servo.js
文件 内的 url: "https://game.mrxie.xyz/"
, 把值修改成你配置的 PHP 服务的地址。
配置 域名信息,把合法域名改成你的域名。
大体配置完成。
三、⭐JS 游戏的逻辑实现
♾️3.1 对象 的 分类
这里面的对象大致分为四类
- 场景器
- 控制器
- 主控制器
♾️3.1 主控制器 - Main
主控制器只有一个 Main
整个程序都是由 主控制器 指导运行的。
主控制器会对场景器与控制器进行管理。
创建 主控制器时 会发生:
创建游戏画布并创建 背景音乐控制器*Audio
(如果背景音乐已经在缓存中的话会尝试播放背景音乐)。
然后 初始化场景为 LoadPage
场景器 这个场景器会绘制加载的场景。
检查现在缓存中有的资源 把缺少的资源整理成列表。
初始化 下载控制器DownLoad
并且根据列表下载需要资源。
定时调用绘制画布函数 show
刷新频率在 60fps setInterval(this.show.bind(this), 1000 / 60);
;
主控制器有函数:
用来更新数据的函数 updata();
用来调用场景器绘制画布的函数 show();
调用 show()
函数前会调用一次 updata();
更新数据。
♾️3.1 场景器
场景器 主要用于控制 画布的场景绘制,同一时间有且只有一个场景器在运行。
场景器 内一定有函数 :
用来更新数据的函数 updata()
用来刷新画布的函数 show()
这些函数都只能由 主控制器调用。
每个场景器都有唯一的编号,这个编号由 主控制器 决定 。
有些需要请求资源的场景器那么就需要先跳转到 0号场景 (加载场景)。
并且会有一个成员 pageQuest
用来告诉主控制器跳转另一个场景时需要发送的请求与请求完后真正要跳转的场景。
❄️updata() 函数
这个函数用来获取事件并更新游戏数据。一定有一个返回值,返回值是他想要跳转的场景编号。
如果需要跳转的场景需要请求数据,就跳转到 场景 0 ,并且把请求数据与最终要跳转到场景的编号放入pageQuest
里 。
❄️ show() 函数
这个函数用来根据数据绘在画布上制出界面场景。
现有的场景器有 3 个 :
- 0号
LoadPage
加载场景 - 1号
InterPage
大厅场景 - 2号
GamePage
游戏场景
游戏场景内又拥有 3 个 控制器用于游戏控制。
♾️3.1 控制器
控制器主要用于调用API, 下载资源,游戏控制等。
控制器根据其功能撰写,没有特殊固有的函数。
现有的控制器共有 6 个 :
-
Servo
POST API 控制器 -
*DownLoad
下载资源控制器 - 唯一 -
*Audio
背景音乐控制器 - 唯一 -
CanvasCommunicatGame
游戏卡牌映射控制器 -
MieGameCan
游戏消除区控制器 -
MieGamePoker
游戏卡牌区控制器
其中这两个是游戏逻辑控制器 :
-
MieGameCan
游戏消除区控制器 -
MieGamePoker
游戏卡牌区控制器
名称前有*
星号的均为 唯一控制器,也就是说整个游戏这个控制器只能被创建一次,哪怕后面你再创建,获取到的控制器也是之前创建出来的。
⭐地图文件格式与其他内容均与 CandyMieGame_PHP 一致
其他内容均可以在 CandyMieGame_PHP 的教程中找到。
如有其他不了解的地方,均可以私信我或者通过文末提供的方式联系到我。
⭐友情链接
效果最接近《羊了个羊》(卡牌堆叠游戏)的开源代码:https://blog.csdn.net/apple_53792700/article/details/127255790
CandyMieGame_WX(注意获取V0.0.0
版本的代码):
Github: https://github.com/MR-XieXuan/CandyMieGame_WX
MieGame_C_Core 代码链接:
Github:https://github.com/MR-XieXuan/MieGame_C_Core
CandyMieGame_PHP(注意获取V0.0.0
版本的代码):
Github: https://github.com/MR-XieXuan/CandyMieGame_PHP
CandyMieGame_H5(注意获取V0.0.0
版本的代码):
Github: https://github.com/MR-XieXuan/CandyMieGame_H5
必须了解的数据结构 BitMap 基础 应用 与 C语言实现:https://blog.csdn.net/apple_53792700/article/details/127592565?spm=1001.2014.3001.5502文章来源:https://www.toymoban.com/news/detail-486944.html
👋联系作者
✍️本文作者为 > 【谢玄.】 Mr-XieXuan < 于 2022/10/11/3:00 发布于 CSDN 。
文章来源地址https://www.toymoban.com/news/detail-486944.html
⌨️GitHub: [ https://github.com/MR-XieXuan }
🔍个人私站: [ https://main.mrxie.xyz/ ]
到了这里,关于效果最接近《羊了个羊》(卡牌堆叠游戏)的开源代码 微信小程序开源了的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!