Android小项目--2048小游戏,看完没有不懂的

本文详细介绍了如何在Android平台上实现2048小游戏,包括Cell类的设计,将Cell添加到GameView中,游戏模式切换,记录分数,判断游戏结束等关键步骤。Cell类用于表示格子并管理数字显示,游戏模式包括无限模式和经典模式,同时记录当前和最高分数。
摘要由CSDN通过智能技术生成

} else if (offsetX < -MIN_DIS) {

return 1;

} else {

return -1;

}

} else {// Y轴移动

if (offsetY > MIN_DIS) {

return 2;

} else if (offsetY < -MIN_DIS) {

return 3;

} else {

return -1;

}

}

}

2. Cell类的设计:Cell用来表示游戏中的小格子

  • Cell表示游戏中移动的小格子,格子的颜色、显示数字等属性都在对象中进行设置,Cell类如下:

public class Cell extends FrameLayout {

//显示数字的TextView

private TextView cellShowText;

//显示的数字

private int digital;

public Cell(Context context) {

super(context);

}

public Cell(@NonNull Context context, int leftMargin, int topMargin, int bottomMargin) {

super(context);

init(context, leftMargin, topMargin, bottomMargin);

}

//初始化

private void init(@NonNull Context context, int leftMargin, int topMargin, int bottomMargin) {

cellShowText = new TextView(context);

// 不同难度设置不同字体大小

switch (Config.GRIDColumnCount) {

case 4:

cellShowText.setTextSize(36);

break;

case 5:

cellShowText.setTextSize(28);

break;

case 6:

cellShowText.setTextSize(20);

break;

default:

cellShowText.setTextSize(36);

break;

}

cellShowText.setGravity(Gravity.CENTER);

// 抗锯齿

cellShowText.getPaint().setAntiAlias(true);

// 粗体

cellShowText.getPaint().setFakeBoldText(true);

// 颜色

cellShowText.setTextColor(ContextCompat.getColor(context, R.color.colorWhite));

// 填充整个父容器

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

params.setMargins(leftMargin, topMargin, 0, bottomMargin);

addView(cellShowText, params);

setDigital(0);

}

//获取卡片

public TextView getItemCell() {

return cellShowText;

}

//获取数字

public int getDigital() {

return digital;

}

//设置数字

public void setDigital(int digital) {

this.digital = digital;

cellShowText.setBackgroundResource(getBackgroundResource(digital));

if (digital <= 0) {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值