cocos creator编写2048小游戏,发微信小游戏

cocos creator编写2048小游戏,发微信小游戏

cocos creator编写2048小游戏,发微信小游戏

不说废话,先上效果图
在这里插入图片描述
有兴趣的也可以试玩一下微信小程序
在这里插入图片描述

这一篇的基础理论知识,算法相关的都在上一篇文章有讲到,建议去学习一下。

c++编写简易版2048小游戏

先看看我们的游戏对象有哪些:
在这里插入图片描述
其实就一个摄像机,背景,开始按钮,还有一个44的sprite背景。
在这里插入图片描述
我们把4
4的数组和4*4的sprite对应起来。
当数组为0的时候,sprite就为空白。当数组不为0,sprite就显示对应的数字sprite。
只需要动态控制好sprite的变化就行。

//画图
	drawmap:function()
	{
   
		var i =0
		var j =0
		
		var txt ="\n"
		for ( i = 1; i <= 4; i++)
		{
   
			for ( j = 1; j <= 4; j++)
			{
   

				if (this.a[i][j]!=0)			// 如果该位置没有数字,则不绘制
				{
   
					txt = txt+(this.a[i][j]+"*")
					/**/
					if (i==1 && j==1)
					{
   
						cc.loader.loadRes(this.a[i][j]+".png", cc.SpriteFrame, function (err, spriteFrame) {
   
						var backNode = cc.find("Canvas");

						backNode.getComponent("HelloWorld").buttons[1][1].getComponent(cc.Sprite).spriteFrame  =spriteFrame

					})
					}
					else if(i==1 && j==2)
					{
   
						cc.loader.loadRes(this.a[i][j]+".png", cc.SpriteFrame, function (err, spriteFrame) {
   
						var backNode = cc.find("Canvas");
					
						backNode.getComponent("HelloWorld").buttons[1][2].getComponent(cc.Sprite).spriteFrame  =spriteFrame

					})
					}
			}
			//....
		}
}

//判断胜利和失败的条件基本相同

// 判断游戏结束
gameover:function()
{
   
	var i =0
	var j =0
	// 对于任意一个位置,该位置为空 或 四周有位置上的数字与该位置上数字相等,说明可继续移动(游戏可继续)
	for (i = 1; i <= 4; i++)
		for ( j = 1; j <= 4; j++)
			if (!this.a[i][j] || this.a[i][j] == this.a[i + 1][j] || this.a[i][j] == this.a[i - 1][j] || this.a[i][j] == this.a[i][j + 1] || this.a[i][j] == this.a[i][j - 1])return false;
	// 否则游戏结束
	return true;
},

// 判断胜利
win:function()
{
   
	var i =0
	var j =0
	// 有任意一个位置达到 2048,则胜利
	for ( i = 1; i <= 4; i++)
		for ( j = 1; j <= 4; j++)
			if (this.a[i][j] == 2048)return true;
	return false;
},

//移动方面的可以参照简易版的

//移动
	move:function(c)
	{
   
		var i =0
		var j =0
		var k =0
		var x =0
		var y =0
		
		// 将 a 备份至 b
		for(i=0;i<=4;i++)
        {
   
            for(j=0;j<=4;j++)
			{
   
				this.b[i][j]=this.a[i][j]
			}
        }
		
		// 初始化 this.mov 为 false(所有点均未移动)
		for(i=0;i<=4;i++)
        {
   
            for(j=0;j<=4;j++)
			{
   
				this.mov[i][j]=false
			}
        }

		if(c==8) //向上
		{
   	
			for (j = 1; j <= 4; j++)
				for (i = 2; i <= 4; i++)
				{
   
					if (this.a[i][j]==0)continue
					k = i
					while (this.a[k - 1][j]==0 && k >= 2)
					{
   
						
						this.a[k - 1][j] = this.a[k][j]
						this.a[k][j] = 0
						k--	
					}
					
					if (this.a[k][j] == this.a[k - 1][j] && this.mov[k - 1][j]==0)
					{
   
						
						this.a[k - 1][j] = 2 * this.a[k][j]
						this.playSound(this.a[k][j]*2)
						this.a[k][j] = 0
						this.mov[k - 1][j] = true
	
						var anim = this.buttons[k - 1][j].getComponent(cc.Animation);
						anim.play();
						
						
				
					}
				}
		}
		else if(c==2) //向下 
		{
   
		//。。。。

可以说做出了简易版的基本算法,移植到cocos creator是十分简单的。

有需要完整代码的可以联系我。可以一起探讨一下。

在这个平台上有收徒的打算,如果小伙伴刚好需要一个能答疑,能带着你学习的师父,请联系我,q:2316773638

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2860.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 品优购-day01笔记-代码规范&品优购项目准备工作&首页初步

    品优购-day01笔记-代码规范&品优购项目准备工作&首页初步typora-copy-images-to:media第01阶段.WEB基础:品优购-day01笔记-代码规范&品优购项目准备工作&首页初步学习目标能会引入ico图标能简单看懂网站优化的三大标签能使用字体图标(重点)能说出我们css属性书写顺序能跟上pink老师的节奏完成品优购项目一、代码规范(重点)1.概述欢迎使用品优购代码规范,这是借鉴…

    2022年5月28日
    32
  • C++中的数组和字符串,strlen函数,iostream头文件

    C++语法是在C语言的基础上发展而来的,兼容C语言语法。在数组和字符串的概念上也一样。字符数组的定义:

    2022年4月8日
    55
  • 通俗、有逻辑的写一篇说下Xgboost的原理,供讨论参考

    通俗、有逻辑的写一篇说下Xgboost的原理,供讨论参考初看Xgboost,翻了多篇博客发现关于xgboost原理的描述实在难以忍受,缺乏逻辑性,写一篇供讨论。——以下是抛砖引玉。观其大略,而后深入细节,一开始扎进公式反正我是觉得效率不高,还容易打消人的积极性。首先说下决策树决策树是啥?举个例子,有一堆人,我让你分出男女,你依靠头发长短将人群分为两拨,长发的为“女”,短发为“男”,你是不是依靠一个指标“头发长短”将人群进行了划分,你就形成了一个

    2022年5月7日
    43
  • pycharm2022.01.12激活码[最新免费获取][通俗易懂]

    (pycharm2022.01.12激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月13日
    278
  • stm32l476芯片介绍(nvidia驱动无法找到兼容的图形硬件)

    前言最近购买了IoTBoard潘多拉开发板来研究,学习使用STM32CubeMX工具配置SPI,然后驱动了TFTLCD。潘多拉开发板的TFTLCD驱动IC是ST7789V2,结合原子哥的TFTLCD代码,分享自己的硬件SPI+软件SPI驱动ST7789V2+中文显示。关于STM32CubeMX的使用可以参考微雪课堂STM32CubeMX系列教程。STM32L475硬件SPI+软…

    2022年4月17日
    97
  • 最新、最全、最准确的手机号正则表达式

    最新、最全、最准确的手机号正则表达式更新到2018年1月,支持最新的166号段/***手机号码正则表达式*/privatestaticfinalStringPHONE_NUMBER_REG="^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\\d{8}$";

    2022年6月14日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号