中国象棋-单机游戏-微信小程序的项目开发流程详解

news/2024/11/8 0:02:20/

关于此文章能看懂的条件:对使用微信开发工具熟悉一点即可

  1. 在微信开发工具中,用小程序方式新建或打卡项目,

注意:如果是下载来的项目,解压后,要选小程序打开,选错是打不开的哦~
如图
在这里插入图片描述

  1. 项目源代码里可看到,打开文件再pages/index/index.js,里面有开始实现的,从onLoad()加载方法中写初始化逻辑代码,定义好需要处理数据
onLoad() {//...//这里实现了初始化逻辑方法,调用执行this.initData();//...
}
/**
* 实现方法
*/
initData: function(){var data = this.data;//定义所有棋子集合,先空着,后面画出来就有data.allPieces = [];//定义选中的棋子,默认null就当没选data.selectedPiece = null;//定义状态的,看甲乙哪一方棋手先手了,再赋值,data.flag = null;//定义游戏是未开始data.playing = false;//定义目的棋子存的数据,用于判断是否可吃data.piece = null;//定义棋盘坐标的,棋子位置数据data.site = null;//定义游戏是未结束data.gameover = false;//...
}
  1. 准备一个画布Canvas,画一个棋盘,需要用到strokeRect()画矩形
  2. 接着画纵横线相连,用moveTo()lineTo()画线,最后用stroke()在棋盘上画出方格效果
onLoad() {//...//这里实现画棋盘的逻辑方法,调用执行this.initChessboard();//...
}
/**
* 实现方法
*/
initChessboard: function(){var canvA = wx.createCanvasContext('chess_a');canvA.strokeRect(padding, padding, data.canvMaxW - 2 * padding, data.canvMaxH - 2 * padding);//...for (var i = 1, index = 0, w = data.canvMaxW - padding; i < 9; i++) {index = padding + cH * i;canvA.moveTo(padding, index);canvA.lineTo(w, index);}//...canvA.stroke();canvA.draw();
}

如图
在这里插入图片描述

  1. 想到棋盘是固定且不会动的特点,棋盘就放在一个新建视图层中,文件在/pages/index/index.wxml,把这图层作为游戏背景,
    PS:如果不想画棋盘,嫌麻烦的❀,就网上找个类似棋盘的背景图来代替,用笔者上面的截图做背景图也可以😀

  2. 接下来,就是画棋子🚩了,需要提供每一个棋子的标识以及位置等一些相关数据,这样棋子动了以后,更新数据才能重新去画,实现棋子变动效果

onLoad() {//...//这里是画所有棋子的方法,调用执行this.initAllChessmen();//...
}
/**
* 实现方法
*/
initAllChessmen: function(){//...for (var i = 0; i < data.allPieces.length; i++) {this.drawPiece(data, data.canvB, data.allPieces[i]);}//...
}
/**
* 实现画棋子方法
*/
drawPiece: function(data, canv, piece, isSelect, isClear, site){//...
}

如图
在这里插入图片描述

  1. 接下来是操作棋子的实现,这时还需要在 pages/index/index.wxml 里面加一层画布canvas在最下面(也许有同学会问Why?放在一些canvas同级最下面的会被UI渲染系统放在最上层显示),绑定一个触摸的方法 bindtouchstart="touchChess",这就可以捕捉到用户的触摸操作了
<view style='height:{{canvMaxH}}px;'><!-- canvas canvas-id='chess_a' --><!-- canvas canvas-id='chess_b' --><canvas canvas-id='chess_c' style='width:{{canvMaxW}}px;height:{{canvMaxH}}px;' bindtouchstart='touchChess'></canvas>
</view>
  1. 下面就是对触摸处理的实现方法touchChess(),仔细看的话还有调用了一些方法,这些方法实现逻辑会复杂一些, 若读者是新手的话,这里可不要被吓到哦,相信自己,有勇气就会有奇迹~ O(∩_∩)O

温馨提示:如果不懂,建议看看JavaScript基础,还有JavaScript ES

/**
* 处理用户触摸时的方法
*/
touchChess: function(event){var data = this.data;if (data.playing) return;if (data.gameover) return;var site = this.pickupChess(data, event);var piece = this.identifyPiece(data, site);//判断之前有没有拾起棋子if (!data.selectedPiece) {//触摸的位置是否是棋子,如果不是,此时piece=nullif (piece) {//此处省略...this.drawPiece(data, data.canvC, piece, true, true);}return;}//如果有拾起棋子的话,就执行下面的判断if (piece) {//此处省略...this.drawPiece(data, data.canvC, piece, true, true);//此处省略...} else {//如果触摸位置下没有识别到棋子,就判断棋子走位if (this.movePiece(data, site)) {this.offensive(data, data.selectedPiece.piece.flag);//此处省略...this.playChess(data);}}},/**
* 实现移动棋子方法
*/
movePiece(){//...
}/**
* 实现触摸位置的坐标方法
*/
pickupChess(){//...
}/**
* 实现识别棋子方法
*/
identifyPiece(){//...
}/**
* 实现判断并吃棋方法
*/
offensive(){//...
}/**
* 实现棋子走位动画方法
*/
playChess(){//...
}
  1. 大致实现思路已讲明了,推荐收藏记下来,后面的实现细节请查看项目例子,全部源码已打包上传到CSDN下载,CSDN下载地址点这里 中国象棋-单机游戏-微信小程序源码
    在这里插入图片描述

有下载或赞赏的,TA远方 作者在此谢过,您的支持是作者继续写原创的动力!

在这里插入图片描述


http://www.ppmy.cn/news/430070.html

相关文章

软件测试 因果+决策案例--中国象棋中走马

软件测试 因果决策案例–中国象棋中走马 题目&#xff1a; 因果决策案例 中国象棋中走马的实际情况&#xff1a; 1&#xff0e;如果落点在棋盘外&#xff0c;则不移动棋子&#xff1b; 2&#xff0e;如果落点与起点不构成日字型&#xff0c;则不移动棋子&#xff1b; 3&am…

中国象棋(react hooks版)

文章目录 前言功能展示新增模块功能搭建项目框架配置React Router配置React Store配置i18n配置主题色React动画React ColorPicker打谱记录单元测试 核心功能优化落子音效dom解耦小结 结语 前言 它终于来了。终于来了&#xff0c;在第一版的基础上&#xff0c;历时近两个月终于…

中国象棋博弈

文章目录 棋盘表示着法生成搜索算法最小值-最大值搜索搜索alpha-beta剪枝优化 棋局评估棋子子力棋子位置 棋盘UI不足参考文献 棋盘表示 中国象棋的棋盘为10*9的矩形&#xff0c;一般采用10*9的二维数组来表示。 chessBoard: [["BR1","BN1","BB1&quo…

java实现中国象棋 源代码

java实现中国象棋 在网上找了很久中国象棋实现的源代码&#xff0c;终于找到了&#xff0c;下面就是源代码。 /**中国象棋Java版V3.0*源文件:Chess.java*添加功能:实现了当前棋局的保存*/import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.uti…

中国象棋,博大精深

文章目录 象棋简介象棋玩法棋子分数 象棋简介 象棋&#xff0c;是汉族棋类益智游戏&#xff0c;中国象棋在中国有着三千多年的历史&#xff0c;属于二人对抗性游戏的一种。由于用具简单、趣味性强&#xff0c;成为流行广泛的棋艺活动。是我国正式开展的78个体育项目之一。 象…

中国象棋详细设计分析

目 录 第一章 引言&#xff08;概述&#xff09; - 1 - 第二章 可行性分析 - 2 - 2.1 总体分析 - 2 - 2.2 开发环境介绍 - 2 - 2.2.1 软件开发环境 - 2 - 第三章 需求设计 - 2 - 第四章 详细设计 - 3 - 4.1 功能设计 - 3 - 4.1.1 功能说明 - 3- 4.1.2 对弈规则 - 4 - 4.1.3 相…

【180629】C++版智商超高的中国象棋游戏源码

这个中国象棋游戏可谓智商比较高&#xff0c;有时候你就是比不过电脑&#xff0c;哈&#xff0c;不服气不行&#xff0c; 试着玩了一局&#xff0c;没有赢电脑&#xff0c;因时间关系没有下第二局。不过&#xff0c;程序中还是有一点点缺憾&#xff0c;希望高人能够修正&#x…

C++实现双人中国象棋(一)——算法篇(附完整代码)

一、简介 最近突发奇想&#xff0c;要使用C做一个双人象棋的程序&#xff0c;昨天肝了一天&#xff0c;终于把算法部分完成了&#xff0c;下面把开发过程中的经验分享一下。 开发环境&#xff1a;Visual Studio 2019 语言标准&#xff1a;C11及以上 纠错&#xff1a;暂无 二、…