微信小程序-俄罗斯方块源码

微信小程序-俄罗斯方块开发实现

  • 技术栈 vue2.0+uniapp

程序使用uniapp开发,开发工具HBuilder X,直接关联微信小程序就行。具体设置参考开发文档https://uniapp.dcloud.net.cn/

  • 单纯小程序,无需其他任何条件

纯vue页面,使用提供的源码即可直接运行。

  • 程序代码部分

主要可以设置方块大小,速度,等具体逻辑要在methods里面实现

data() {
			return {
				randomIndex: 1,
				//地图大小
				mapSize: [18, 10],
				//下降时间:开始,结束,每升一级减少等待时间
				downSpeed: [1500, 200, 100],
				//分数:现在分数,多少分升一级, step
				score: [0, 100, 1],
				isPaused: false, // 新增暂停状态
				//地图
				map: [],
				//7种方块,及其朝向
				blocks: [
					[
						[
							[0, 1, 1],
							[1, 1, 0]
						],
						[
							[1, 0],
							[1, 1],
							[0, 1]
						]
					],
					[
						[
							[1, 1, 0],
							[0, 1, 1]
						],
						[
							[0, 1],
							[1, 1],
							[1, 0]
						]
					],
					[
						[
							[1, 1, 1, 1]
						],
						[
							[1],
							[1],
							[1],
							[1]
						]
					],
					[
						[
							[1, 1],
							[1, 1]
						]
					],
					[
						[
							[0, 1, 0],
							[1, 1, 1]
						],
						[
							[0, 1],
							[1, 1],
							[0, 1]
						],
						[
							[1, 1, 1],
							[0, 1, 0]
						],
						[
							[1, 0],
							[1, 1],
							[1, 0]
						]
					],
					[
						[
							[0, 0, 1],
							[1, 1, 1]
						],
						[
							[1, 1],
							[0, 1],
							[0, 1]
						],
						[
							[1, 1, 1],
							[1, 0, 0]
						],
						[
							[1, 0],
							[1, 0],
							[1, 1]
						]
					],
					[
						[
							[1, 0, 0],
							[1, 1, 1]
						],
						[
							[0, 1],
							[0, 1],
							[1, 1]
						],
						[
							[1, 1, 1],
							[0, 0, 1]
						],
						[
							[1, 1],
							[1, 0],
							[1, 0]
						]
					],
				],
				//方块开始位置
				startPosition: [0, 4],
				//方块现在位置
				blockPosition: [0, 0],
				//当前方块限制:方块种类,方块朝向
				nowBlock: [0, 0],
				//下一个方块限制: 方块种类,方块朝向
				nextBlock: [0, 0],
				//游戏窗口高度:
				gameViewHeight: 450,
				//游戏结束
				gameOver: false,
				//游戏循环体
				gameUpdateFunc: null,
			}
		},
		mounted() {
			this.refreshNextBlock()
			this.refreshNextBlock()
		},
		 onUnload() {
		    document.removeEventListener('keydown', this.keydownHandler);
		  },
		onLoad() {
			this.initGame()
			var that = this

			document.addEventListener('keydown', function(e) {

				// console.log("----->当前按键keyCode:" + e.keyCode);

				switch (e.keyCode) {
					case 37:
						that.moveLeft();
						break;
					case 38:
						that.rotateBlock();
						break;
					case 39:
						that.moveRight();
						break;
					case 40:
						that.moveDown();
						break;
					case 32: // 空格键
						that.togglePause();
						break;
				}

			})

		},
  • 程序运行截图

程序提供下面按钮操作,也支持键盘操作,具体功能对应代码

		<view class="foot">
			<view class="act-button" @click="moveLeft"></view>
			<view class="act-button" @click="moveRight"></view>
			<view class="act-button" @click="moveDown"></view>
			<view class="act-button" @click="rotateBlock"></view>
			<view class="act-button" @click="togglePause">{{isPaused ? '继' : '暂'}}</view>
		</view>

在这里插入图片描述

游戏提供暂停、继续功能。
在这里插入图片描述
具体源码可关注公众号点击下方菜单免费获取
请添加图片描述
请添加图片描述
关注后点击【源码】即可获取
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑白码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值