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日正式公测. < ...
随机推荐
- Android应用程序的基本组件介绍
1.Activity和View Activity是Android应用中负责与用户交互的组件,它只能通过setContentView(View)来显示指定组件. View组件是所有UI控件.容器空间的基 ...
- Determining Whether Multitasking Is Available
[Determining Whether Multitasking Is Available] Apps must be prepared to handle situations where mul ...
- BASE64Encoder及BASE64Decoder编译器找不到问题
编译器自带这两个类,但是会报错找不到,需要手动让编译器识别这个类 第一步.右键项目,然后选择properties 第二步,打开如图位置 第三部,选择如图位置,双击 第四部,add添加 更改值 改为如图 ...
- Spring3.x错误----java.lang.ClassNotFoundException:org.aopalliance.inter.MethodInterceptor
Spring3.x错误: 解决方法: 发现MethodInterceptor确实不存在,发现少了个jar包,aopalliance-1.0.jar 参考: http://blog.csdn.net/s ...
- HTTP 499 状态码 nginx下 499错误
日志记录中HTTP状态码出现499错误有多种情况,我遇到的一种情况是nginx反代到一个永远打不开的后端,就这样了,日志状态记录是499.发送字节数是0. 老是有用户反映网站系统时好时坏,因为线上的产 ...
- sun.misc.BASE64Decoder的风险
问题描述 最近需要使用Base64上传图片,但是返现sun.misc.BASE64Decoder 为已经过期的包,此包为以前sun公司的内部包,可以下载此包,但是不利于现在Maven方式构建,可能会在 ...
- pro2
#include<iostream> double sum(int n,dounle[]) { double array[100]; foe(int i=0;i<100;i++; ...
- 个人项目-数组求和(语言:C++)
prog1详细要求: [第一版本程序Prog1要求:] + 给定一个数组,实现数组元素求和:,具体要求:实现对一维数组(a[100])的所有元素相加运算. + 数据准备:a)数组长度:100:b)数组 ...
- 由于没有公钥,无法验证下列签名 Ubuntu
问题:执行 apt-get update 时错误 W: GPG 错误:https://apt.dockerproject.org ubuntu-trusty InRelease: 由于没有公钥,无法验 ...
- C#泛型使用小记
最近C#的泛型使用频次略多,特在此记下一个印象深刻的. 情景如下, 基类BaseClass 有一系列的子类 SubClass1, SubClass2, SubClass3... 且其构造函数的参数较多 ...