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核心功能的更多相关文章

  1. Android手游《》斗地主完整的源代码(支持单机和网络对战)

    Android手游<斗地主>完整的源代码(支持单机和网络对战)下载.一个很不错的源代码. 斗地主掌游是一个独特的国内社会斗地主棋牌游戏,之后玩家可以下载网上斗地主和全世界.掌游斗地主特点: ...

  2. Android手游外挂入侵----寓攻于守,方能破敌

    欢迎访问网易云社区,了解更多网易技术产品运营经验. 手游外挂入侵 随着各种爆款手游的风靡,目前手机游戏的占比用户已经形成一个巨大的市场,市场上你争我夺,有将PC版本移植到手机中,也有新模式手游的推出. ...

  3. 破解者是如何篡改游戏内数值的,揭秘Android手游破解全过程

    由于Android系统的开放性,让人人都是开发者成为可能,也正因如此,手机APP遭受破解和盗版问题长期存在,且愈演愈烈.尤其是手游 行业,如刀塔传奇.植物大战僵尸.2048等知名游戏被破解的案例不胜枚 ...

  4. 某Android手游的lua源码逆向分析与还原

    近日分析某一款Android上面的手游,反编译后再起asset目录下可以看到加密过的脚本,lib目录下发现lua的so 初步怀疑其使用lua脚本实现的 解密函数定位 动态跟踪解密函数流程 静态分析解密 ...

  5. 源码分析 | 手写mybait-spring核心功能(干货好文一次学会工厂bean、类代理、bean注册的使用)

    作者:小傅哥 博客:https://bugstack.cn - 汇总系列原创专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言介绍 一个知识点的学习过程基本分为:运行helloworld ...

  6. 手游接入Facebook的那些坑

    之前工作须要在手游中接入了facebook,并以此写了<手游接入Facebook功能>的博文.当时facebook sdk的版本号还是3.x.代码集成度比較低.集成起来也比較麻烦.文中仅仅 ...

  7. 知物由学|游戏开发者如何从容应对Unity手游风险?

    本文由  网易云发布. "知物由学"是网易云易盾打造的一个品牌栏目,词语出自汉·王充<论衡·实知>.人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不 ...

  8. 年度游戏圈2018白皮书解析手游折扣app哪个好及靠谱程度分析

    2018年,随着全国暂停游戏版本的审核和发布<综合防控儿童青少年近视实施方案>(控制新的在线游戏数量),游戏行业受到的影响不小. 在游戏产业中,游戏行业2018年的收入同比增长5.2%,远 ...

  9. 从《乱世王者》看腾讯SLG手游如何搭建完整安全服务

    WeTest 导读 <乱世王者>是由腾讯旗下天美工作室群自主研发的一款战争策略手游,在经历了2015年-2017年的SLG品类手游的爆发之势下,于2017年11月21日正式公测. < ...

随机推荐

  1. Ansible常用模块命令

    Ansible常用模块命令 一.安装ansible yum install epel-release yum install ansible 二.配置文件配置 vi /etc/ansible/ansi ...

  2. Work at a KFC fast food restaurant

    During the summer holiday of 2005,I thought I should do some meaningful instead of at home and watch ...

  3. IntentService介绍

    1.IntentService 是什么 一个封装了HandlerThread和Handler的异步框架. 是一种特殊Service,继承自Service,是抽象类,必须创建子类才可以使用. 可用于执行 ...

  4. Windbg and resources leaks in .NET applications 资源汇总

    Windows Forms Leaks 1.http://blogs.msdn.com/b/tess/archive/2008/02/04/net-debugging-demos-informatio ...

  5. linux 流量统计

    因为很多vps或者服务器都是限流量的,但是又很多服务商并没有提供详细的流量表,比如每天的流量表,所以肯定有人很想知道自己服务器到底跑了多少流量. vnstat就是一个很好用的服务器流量统计命令.我截几 ...

  6. Ubuntu 16.04.2 LTS 安装 jdk1.6 和 tomcat6 (一)

    java和tomcat环境配置已经有很多教程和文章,最近项目需要配置Ubuntu 16.04.2下的古老的java6和tomcat 6,遇到小坑,特记录和分享. 网上的教程不是太新,就是太老,还有一些 ...

  7. Spring中ApplicationContext和beanfactory区别---解析二

    一.BeanFactory 和ApplicationContext Bean 工厂(com.springframework.beans.factory.BeanFactory)是Spring 框架最核 ...

  8. Hadoop 集群配置记录小结

    Hadoop集群配置往往按照网上教程就可以"配置成功",但是你自己在操作的时候会有很多奇奇怪怪的问题出现, 我在这里整理了一下常见的问题与处理方法: 1.配置/etc/hosts ...

  9. Linux tomcat 添加开机启动

    准备工作:将 jdk-7u80-linux-x64.tar.gz 解压到到 /usr/local/目录下将 apache-tomcat-7.0.82.zip 解压到/opt/etcoud目录下,并切换 ...

  10. asp.net core部署到iis

    asp.net core项目部署到IIS稍微不同于之前,记录几个要点: 一.下载安装.NET Core 托管捆绑包,下载地址,这个链接或许不是最新的了,官方文档里面有这个链接,到下图所示位置即可找到. ...