Android手游2048核心功能
private void swipeUp(){ //向上滑动函数
for (int x = 0; x < 4; x++) { //行从上到下
for (int y = 0; y < 4; y++) { //列从左到右
for (int y1 = y+1; y1 < 4; y1++) { //当前方块的下一个向底遍历
if (Matrix[x][y1].getNum()>0) { //如果遍历过程中有非空方块(即有数字),则执行操作
if (Matrix[x][y].getNum()<=0) { //如果当前方块是空值,则将遍历到的非空方块移动到当前方块
int yoy =y1 - y; //移动的步距值
ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,0,
Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,-yoy); //-yoy为负数,即相对于0,在y方向产生向上移动yoy步距的动画
ta.setDuration(100); //动画持续时间
Matrix[x][y1].startAnimation(ta); //演示动画
Matrix[x][y].setNum(Matrix[x][y1].getNum()); //设置当前方块值,移动成功
Matrix[x][y1].setNum(0); //将遍历到的方块值清零,即不显示
y--; //break后重新从当前方块的下一个重新开始遍历,等待一次寻找到相同值且合并的机会
break; //break后重新从当前方块的下一个重新开始遍历,等待一次寻找到相同值且合并的机会
}else if (Matrix[x][y].equals(Matrix[x][y1])) { //如果当前方块的值与遍历到的方块值相等
int yoy =y1 - y; //移动的步距值
ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,0,
Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,-yoy); //-yoy为负数,即相对于0,在y方向产生向上移动yoy步距的动画
ta.setDuration(100); //动画持续时间
Matrix[x][y1].startAnimation(ta); //演示动画
Matrix[x][y].setNum(Matrix[x][y1].getNum()*2); //设置当前方块值为两倍,即两方块相加
Matrix[x][y1].setNum(0); //将遍历到的方块清零,即不显示
break; //完成相加后,从下一个方块开始完成新一轮操作
}else {
break; //如果当前方块的值与遍历到的方块值不相等,则从下一个方块开始完成新一轮操作
}
}
}
}
}
}
private void swipeDown(){ //向下滑动函数
for (int x = 0; x < 4; x++) {
for (int y = 3; y >= 0; y--) {
for (int y1 = y-1; y1 >= 0; y1--) {
if (Matrix[x][y1].getNum()>0) {
if (Matrix[x][y].getNum()<=0) {
int yoy =y1 - y;
ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,0,
Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,-yoy);
ta.setDuration(100);
Matrix[x][y1].startAnimation(ta);
Matrix[x][y].setNum(Matrix[x][y1].getNum());
Matrix[x][y1].setNum(0);
y++;
break;
}else if (Matrix[x][y].equals(Matrix[x][y1])) {
int yoy =y1 - y;
ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,0,
Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,-yoy);
ta.setDuration(100);
Matrix[x][y1].startAnimation(ta);
Matrix[x][y].setNum(Matrix[x][y1].getNum()*2);
Matrix[x][y1].setNum(0);
break;
}else {
break;
}
}
}
}
}
}
private void swipeLeft(){ //向左滑动函数
for (int y = 0; y < 4; y++) {
for (int x = 0; x < 4; x++) {
for (int x1 = x+1; x1 < 4; x1++) {
if (Matrix[x1][y].getNum()>0) {
if (Matrix[x][y].getNum()<=0) {
int xox =x1 - x;
ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,-xox,
Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,0);
ta.setDuration(100);
Matrix[x1][y].startAnimation(ta);
Matrix[x][y].setNum(Matrix[x1][y].getNum());
Matrix[x1][y].setNum(0);
x--;
break;
}else if (Matrix[x][y].equals(Matrix[x1][y])) {
int xox =x1 - x;
ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,-xox,
Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,0);
ta.setDuration(100);
Matrix[x1][y].startAnimation(ta);
Matrix[x][y].setNum(Matrix[x1][y].getNum()*2);
Matrix[x1][y].setNum(0);
break;
}else {
break;
}
}
}
}
}
}
private void swipeRight(){ //向右滑动函数
for (int y = 0; y < 4; y++) {
for (int x = 3; x >= 0; x--) {
for (int x1 = x-1; x1 >= 0; x1--) {
if (Matrix[x1][y].getNum()>0) {
if (Matrix[x][y].getNum()<=0) {
int xox =x1 - x;
ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,-xox,
Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,0);
ta.setDuration(100);
Matrix[x1][y].startAnimation(ta);
Matrix[x][y].setNum(Matrix[x1][y].getNum());
Matrix[x1][y].setNum(0);
x++;
break;
}else if (Matrix[x][y].equals(Matrix[x1][y])) {
int xox =x1 - x;
ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,-xox,
Animation.RELATIVE_TO_SELF,0, Animation.RELATIVE_TO_SELF,0);
ta.setDuration(100);
Matrix[x1][y].startAnimation(ta);
Matrix[x][y].setNum(Matrix[x1][y].getNum()*2);
Matrix[x1][y].setNum(0);
break;
}else {
break;
}
}
}
}
}
}
Android手游2048核心功能的更多相关文章
- Android手游《》斗地主完整的源代码(支持单机和网络对战)
Android手游<斗地主>完整的源代码(支持单机和网络对战)下载.一个很不错的源代码. 斗地主掌游是一个独特的国内社会斗地主棋牌游戏,之后玩家可以下载网上斗地主和全世界.掌游斗地主特点: ...
- Android手游外挂入侵----寓攻于守,方能破敌
欢迎访问网易云社区,了解更多网易技术产品运营经验. 手游外挂入侵 随着各种爆款手游的风靡,目前手机游戏的占比用户已经形成一个巨大的市场,市场上你争我夺,有将PC版本移植到手机中,也有新模式手游的推出. ...
- 破解者是如何篡改游戏内数值的,揭秘Android手游破解全过程
由于Android系统的开放性,让人人都是开发者成为可能,也正因如此,手机APP遭受破解和盗版问题长期存在,且愈演愈烈.尤其是手游 行业,如刀塔传奇.植物大战僵尸.2048等知名游戏被破解的案例不胜枚 ...
- 某Android手游的lua源码逆向分析与还原
近日分析某一款Android上面的手游,反编译后再起asset目录下可以看到加密过的脚本,lib目录下发现lua的so 初步怀疑其使用lua脚本实现的 解密函数定位 动态跟踪解密函数流程 静态分析解密 ...
- 源码分析 | 手写mybait-spring核心功能(干货好文一次学会工厂bean、类代理、bean注册的使用)
作者:小傅哥 博客:https://bugstack.cn - 汇总系列原创专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言介绍 一个知识点的学习过程基本分为:运行helloworld ...
- 手游接入Facebook的那些坑
之前工作须要在手游中接入了facebook,并以此写了<手游接入Facebook功能>的博文.当时facebook sdk的版本号还是3.x.代码集成度比較低.集成起来也比較麻烦.文中仅仅 ...
- 知物由学|游戏开发者如何从容应对Unity手游风险?
本文由 网易云发布. "知物由学"是网易云易盾打造的一个品牌栏目,词语出自汉·王充<论衡·实知>.人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不 ...
- 年度游戏圈2018白皮书解析手游折扣app哪个好及靠谱程度分析
2018年,随着全国暂停游戏版本的审核和发布<综合防控儿童青少年近视实施方案>(控制新的在线游戏数量),游戏行业受到的影响不小. 在游戏产业中,游戏行业2018年的收入同比增长5.2%,远 ...
- 从《乱世王者》看腾讯SLG手游如何搭建完整安全服务
WeTest 导读 <乱世王者>是由腾讯旗下天美工作室群自主研发的一款战争策略手游,在经历了2015年-2017年的SLG品类手游的爆发之势下,于2017年11月21日正式公测. < ...
随机推荐
- genymotion的安装
1.安装virtualBox google的模拟器是运行在qemu上面的. genymotion这个模拟器运行在virtualBox上面.
- Mysql索引会失效的几种情况分析(转)
出处:http://www.jb51.net/article/50649.htm 索引并不是时时都会生效的,比如以下几种情况,将导致索引失效: 1.如果条件中有or,即使其中有条件带索引也不会使用(这 ...
- RocketMQ 自定义文件路径
一 .1. 修改store路径2. 修改logs路径3. 修改rmq_bk_gc.log路径4. 修改rmq_srv_gc.log路径二 .1. 获取正确的rocketmq 源码2. 地址:https ...
- http://www.rabbitmq.com/
什么是RabbitMQ 官网http://www.rabbitmq.com/ 1.应用程序间健壮的消息发送 2.简单易用 3.可在所有主流操作系统运行 4.支持巨量的开发者平台 5.开源和商用双重支持 ...
- Linux 基础教程 41-系统关机和重启
在Linux系统中,仅仅是关机和重启相关的命令就至少有5个,shutdown. halt.poweroff.reboot.init.各个命令作用如下所示: 命令 说明 shutdown 可用于 ...
- Codeforces788A Functions again 2017-04-12 18:22 56人阅读 评论(0) 收藏
C. Functions again time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- java并发编程实战:第二章----线程安全性
一个对象是否需要是线程安全的取决于它是否被多个线程访问. 当多个线程访问同一个可变状态量时如果没有使用正确的同步规则,就有可能出错.解决办法: 不在线程之间共享该变量 将状态变量修改为不可变的 在访问 ...
- 23 DesignPatterns学习笔记:C++语言实现 --- 1.3 Singletion
23 DesignPatterns学习笔记:C++语言实现 --- 1.3 Singletion 2016-07-21 (www.cnblogs.com/icmzn) 模式理解
- 试题 F: 特别数的和 第十届蓝桥杯
试题 F: 特别数的和时间限制: 1.0s 内存限制: 512.0MB 本题总分: 15 分[问题描述]小明对数位中含有 2. 0. 1. 9 的数字很感兴趣(不包括前导 0),在 1 到40 中这样 ...
- WinExec打开exe文件
1,WinExec(): WinExec主要运行EXE文件,不能运行其他类型的文件.不用引用特别单元. 原型:UINT WinExec(exePath,ShowCmd) 示例,我想要用记事 ...