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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • excel函数大全完整版_大学excel函数公式大全

    excel函数大全完整版_大学excel函数公式大全一、数据库和清单管理函数1、DAVERAGE【参数】返回数据库或数据清单中满足指定条件的列中数值的平均值。【语法】DAVERAGE(database,field,criteria)【参数】Databa

    2022年8月3日
    5
  • idea 2022 mac 激活码(JetBrains全家桶)[通俗易懂]

    (idea 2022 mac 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月31日
    466
  • 深信服SCSA安全工程师题库(方便大家复习备考)

    深信服SCSA安全工程师题库(方便大家复习备考)1、【EDR】下列哪个端口是紧急情况下EDR管理平台和客户端通信端口,即紧急情况下用于下发Agent重启、Agent卸载和Agent停止等指令。()A:443.0B:54120.0C:8083.0D:8088.0正确答案B2、【EDR】客户有7000个终端需要安装EDR客户端进行安全防护,请问推荐部署多少个EDR管理平台()A:1个B:2个C:4个D:6个正确答案C3、【EDR】EDR的Agent客户端不支持在以下哪种类型的终端上安装()A:WindowsServerB

    2022年6月20日
    49
  • Windows10下安装Anaconda、Pycharm、Tensorflow-gpu,并在Pycharm中配置Tensorflow

    Windows10下安装Anaconda、Pycharm、Tensorflow-gpu,并在Pycharm中配置TensorflowWindows10下安装Anaconda、Pycharm、Tensorflow-gpu,并在Pycharm中配置TensorflowPyCharm是一款功能强大的Python编辑器,其提供了一个带编码补全,代码片段,支持代码折叠和分割窗口的智能、可配置的编辑器,可帮助用户更快更轻松的完成编码工作。用户可使用其编码语法,错误高亮,智能检测以及一键式代码快速补全建议,使得编码更优化。所以我一般推荐使用Pycharm进行python代码编辑。但是Anaconda通过管理工具包、开发环境、Python

    2022年8月29日
    7
  • LED亮度调节原理

    LED亮度调节原理近年来Light-emittingdiode(LED)被广泛用于照明行业,相较于其他光源,LED具有诸多优势:光效高、寿命长、色温变化小、动态响应快、体积小等。那么如何才能设计出合理的灯具呢,我来给大家罗列一下LED的主要特性。一.发光原理当电流被注入到半导体的PN结时,原子中低能级的电子吸收能量从基态被激发到较高能级,这个能级我们称之为激发态。而激发态的寿命是短暂的,他十…

    2022年6月9日
    65
  • Python 画图常用颜色 – 单色、渐变色、混色 – 够用

    Python 画图常用颜色 – 单色、渐变色、混色 – 够用单色  装了seaborn扩展的话,在字典seaborn.xkcd_rgb中包含所有的xkcdcrowdsourcedcolornames。如下:plt.plot([1,2],lw=4,c=seaborn.xkcd_rgb[‘babypoopgreen’])虽然觉得上面的已经够用了,但是还是备份一下这个最全的吧。 渐变色:  混色…

    2022年6月6日
    83

发表回复

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

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