Cocos2d-x 3.2 学习笔记(十一)Game 2048
一、规则
游戏2048的规则很简单
2+2=4 4+4=8 8+8=16 16+16=32 ……1024+1024=2048
这游戏挺火的……不过做起来也不难,就用cocos2dx做一下,首先我也没看过别人 怎么做的,当然写的也不是很好,能玩……
二、游戏
游戏的界面是用画的,数字是写上去的,卡片的移动效果没有做,加入了声音,玩起来还行。
1、主要的类只有四个:
GameScene 主场景(分值显示、菜单按钮、游戏区域)
GameLayer 游戏操作区域(数值变化、逻辑控制)
GameItem 游戏中的格子控件(颜色,数字显示)
GameMenuLayer 游戏中的菜单(重置、暂停或开始)
2、移动方向的判断
移动方向是通过手指触摸起点到移动终点的距离来判断的,横向距离小于纵向距离则为向上或者下移动,横向距离大于纵向距离则为向左或者右移动
3、颜色控制
if(_num == ){
_layer->setColor(cocos2d::Color3B(,,));
}
if (_num == ) {
_layer->setColor(cocos2d::Color3B(,,));
}
if (_num == ) {
_layer->setColor(cocos2d::Color3B(,,));
}
if (_num == ) {
_layer->setColor(cocos2d::Color3B(,,));
}
if (_num == ) {
_layer->setColor(cocos2d::Color3B(,,));
}
if (_num == ) {
_layer->setColor(cocos2d::Color3B(,,));
}
if (_num == ) {
_layer->setColor(cocos2d::Color3B(,,));
}
if (_num == ) {
_layer->setColor(cocos2d::Color3B(,,));
}
if (_num == ) {
_layer->setColor(cocos2d::Color3B(,,));
}
if (_num == ) {
_layer->setColor(cocos2d::Color3B(,,));
}
if (_num == ) {
_layer->setColor(cocos2d::Color3B(,,));
}
if (_num == ) {
_layer->setColor(cocos2d::Color3B(,,));
}
三、横竖屏设置
横竖屏的设置在AndroidManifest.xml文件中
screenOrientation="landscape" 为横屏,
screenOrientation="portrait"为竖屏
这里在编译apk文件时要设置,因为我们的游戏是竖屏的,不然会有显示问题。
四、屏幕适配
屏幕适配的问题我忘记在哪里找到的,不过适配的效果不错,在代码里面。
五、下载
Game2048.apk
链接: http://pan.baidu.com/s/1iyBp0 密码: 2y8y
Game2048代码
链接: http://pan.baidu.com/s/1sjGzWx3 密码: kxct
Cocos2d-x 3.2 学习笔记(十一)Game 2048的更多相关文章
- python3.4学习笔记(十一) 列表、数组实例
python3.4学习笔记(十一) 列表.数组实例 #python列表,数组类型要相同,python不需要指定数据类型,可以把各种类型打包进去#python列表可以包含整数,浮点数,字符串,对象#创建 ...
- Go语言学习笔记十一: 切片(slice)
Go语言学习笔记十一: 切片(slice) 切片这个概念我是从python语言中学到的,当时感觉这个东西真的比较好用.不像java语言写起来就比较繁琐.不过我觉得未来java语法也会支持的. 定义切片 ...
- JavaScript权威设计--JavaScript函数(简要学习笔记十一)
1.函数调用的四种方式 第三种:构造函数调用 如果构造函数调用在圆括号内包含一组实参列表,先计算这些实参表达式,然后传入函数内.这和函数调用和方法调用是一致的.但如果构造函数没有形参,JavaScri ...
- SharpGL学习笔记(十一) 光源创建的综合例子:光源参数可调节的测试场景
灯光的测试例子:光源参数可以调节的测试场景 先看一下测试场景和效果. 场景中可以切换视图, 以方便观察三维体和灯光的位置.环境光,漫射光,镜面反射光都可以在四种颜色间切换. 灯光位置和摄像机位置(Lo ...
- java jvm学习笔记十一(访问控制器)
欢迎装载请说明出处: http://blog.csdn.net/yfqnihao/article/details/8271665 这一节,我们要学习的是访问控制器,在阅读本节之前,如果没有前面几节的 ...
- Oracle学习笔记十一 游标
游标的简介 游标的概念 游标是从数据表中提取出来的数据,以临时表的形式存放在内存中,在游标中有一个数据指针,在初始状态下指向的是首记录,利用fetch语句可以移动该指针,从而对游标中的数据进行各种操作 ...
- Java基础学习笔记十一 Eclipse开发工具
Eclipse是功能强大Java集成开发工具.它可以极大地提升我们的开发效率.可以自动编译,检查错误.在公司中,使用的就是Eclipse进行开发. Eclipse的下载.安装.卸载 下载 http:/ ...
- (C/C++学习笔记) 十一. 数组
十一. 数组 ● 基本概念 数组:数组是一组在内存中依次连续存放的(数组所有元素在内存中的地址是连续的).具有同一类型的数据变量所组成的集合体.其中的每个变量称为数组元素,它们属于同一种数据类型,数组 ...
- Vue学习笔记十一:按键修饰符和自定义指令(钩子函数)
目录 padStart:补位 按键修饰符 Vue提供的按键修饰符 自定义按键修饰符 自定义指令 自定义指令的使用 钩子函数 钩子函数参数 使用钩子函数的bingding参数 私有自定义指令 钩子函数的 ...
- SQLite学习笔记(十一)&&虚拟机原理
前言 我们知道任何一种关系型数据库管理系统都支持SQL(Structured Query Language),相对于文件管理系统,用户不用关心数据在数据库内部如何存取,也不需要知道底层的存储 ...
随机推荐
- 第52讲:Scala中路径依赖代码实战详解
今天学习了scala中的路径依赖,来看一下实战代码 class Outer{ private val x = 10 class Inner{ private val y = x +10 } ...
- testng参数化(提供测试数据)【转】
testng提供测试数据的两个注释:@DataProvide和@Parameter 一.通过testng.xml中设置参数 (实际上testng.xml只是一个名字,可以起任何一个名字,只要是.x ...
- Extjs的js函数
在Extjs内部使用函数的时候,由于我本身没有真正学过原生的js,所以对于一些函数的写法及用法很生疏,所以用起来很不方便,经常给自己弄出很多莫名其妙的bug, 比如当写了一个button,然后为其添加 ...
- [POI2008]KLO && POC
题意:给定一个序列 s1, s2,...sn,以及一个k,求一个连续的k个数,把s[i]...s[i+k-1]变成一个数s',使得sigma(|s[j]-s'|)(i<=j<=i+k-1) ...
- Android消息队列和Looper
1. 什么是消息队列 消息队列在android中对应MessageQueue这个类,顾名思义,消息队列中存放了大量的消息(Message) 2.什么是消息 消息(Message)代表一个行为(what ...
- Oracle EBS进化史
https://blogs.oracle.com/ptian/entry/oracle_ebs%E8%BF%9B%E5%8C%96%E5%8F%B2 通过图表总结了下Oracle EBS的进化历史,回 ...
- ASP.NET连接远程Oracle数据库,提示试图加载格式不正确的程序
VS调试远程连接Oracle数据库,一直报错 由于本地计算机是64位的操作系统,而且也确定安装的Oracle客户端是64位的 ,但是一直提示这个错误. 试了很多方法,终于发现可能是 不能在VS中调试的 ...
- Apache Lucene 4.5 发布,Java 搜索引擎
Apache Lucene 4.5 发布了,该版本提供基于磁盘的文档值以及改进了过滤器的缓存.Lucene 4.5 的文档请看这里. Lucene 是apache软件基金会一个开放源代码的全文检索引擎 ...
- Entity FrameWork 单表对多实体
一个影片信息Clips表,四个字段:clipId,clipName,fileSize,fileName 方案一: [Table("Clips")] public class Cli ...
- [翻译].NET随机数
原文链接:http://csharpindepth.com/Articles/Chapter12/Random.aspx 随机数 当你在Stack Overflow上看到看到某个问题标题当中有“随 ...