android游戏源码 2048,Android实现2048小游戏

本文实例介绍了Android实现2048小游戏的相关代码,分享给大家供大家参考,具体内容如下

818231f88cb2545d4156a44df612871b.png

根据界面,主要实现4*4的格子方块比较麻烦,其他的都挺简单的.总体为实现4*4的格子,自定义GridLayout,并在其中添加触摸监听事件,进行一系列的操作,从而实现游戏的逻辑,最后再添加动画效果即可完成.

下面是设计思路:

一.GameView的设计

首先自定义一个类,继承GridLayout,添加两个构造方法

public class GameView extends GridLayout {

//两个必要的构造方法

public GameView(Context context) {

super(context);

initView();

}

public GameView(Context context, AttributeSet attrs) {

super(context, attrs);

initView();

}

}

接下来在initView()中实现设置GridLayout为四列,并且添加触摸事件监听.(监听方法还可以重写onTouchEvent(),返回值为true即可),判断触摸方向,主要是通过x轴和y轴的偏移量的比较

//初始化变量的方法

public void initView(){

//设置只有四列

setColumnCount(4);

//设置监听事件

setOnTouchListener(new OnTouchListener() {

@Override

public boolean onTouch(View v, MotionEvent event) {

switch (event.getAction()) {

case MotionEvent.ACTION_DOWN:

setX = event.getX();

setY = event.getY();

break;

case MotionEvent.ACTION_UP:

offsetX = event.getX() - setX;

offsetY = event.getY() - setY;

//判断滑动方向

if (Math.abs(offsetX) >= Math.abs(offsetY)) {

if (offsetX > 0) {

swipright();

} else if (offsetX < 0) {

swipleft();

}

} else {

if (offsetY > 0) {

swipdown();

} else if (offsetY < 0) {

swipup();

}

}

break;

}

return true;

}

});

}

监听事件实现后先放在那里,接下来把4*4的里面每个小格子设计成小卡片,每个卡片就是一个TextView,卡片设计很简单,需要什么就添加什么,默认数字为0,这个时候代表是空值,也就是空卡片.

public class Card extends FrameLayout {

public Card(Context context) {

super(context);

tvCard = new TextView(getContext());

tvCard.setTextSize(40f);

tvCard.setGravity(Gravity.CENTER);

LayoutParams lp = new LayoutParams(-1,-1);

lp.setMargins(15,15,0,0);

addView(tvCard, lp);

}

//卡片上的数字

private int num;

private boolean is2048 = true;

private void judgeIs2048(int num){

if (is2048){

if (2048==num){

Toast.makeText(getContext(),"恭喜赵莹达到2048",Toast.LENGTH_LONG).show();

is2048 = false;

}

}

}

public int getNum() {

<
  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值