Android高仿2048小游戏实现代码

您所在的位置:网站首页 安卓2048游戏开发 Android高仿2048小游戏实现代码

Android高仿2048小游戏实现代码

2023-07-06 23:18| 来源: 网络整理| 查看: 265

刚开始进入Splash界面:

1.SplashActivity.Java(两秒后进入开始界面,Splash界面的布局只有一个图片,在博客后,会展示给大家看)

public class SplashActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(2000); Intent intent=new Intent(SplashActivity.this, LoginActivity.class); startActivity(intent); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } finish(); } }).start(); } }

2.LoginActivity(登陆界面)

private Button btn1,btn2; private EditText etAcount,etPassword; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); initView(); } private void initView() { btn1=(Button) findViewById(R.id.btn_login); btn2=(Button) findViewById(R.id.btn_register); etAcount=(EditText) findViewById(R.id.et_account); etPassword=(EditText) findViewById(R.id.et_pwd); btn1.setOnClickListener(new OnClickListener() { //登录按钮的监听 @Override public void onClick(View v) { SharedPreferences sharedPreferences=getSharedPreferences("user", MODE_PRIVATE); String number=sharedPreferences.getString("number", ""); int a,b; if (number=="") { a=0;//记录用户个数 }else { a=Integer.parseInt(number); } String account; String password; for (b=0;b 5) { swipeDown(); } else if (offsetY < -5) { swipeUp(); } } break; } return true; } }); } //根据卡片宽和高 @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { //该方法就是宽高发生改变的时候我们可以得到当前的宽高是多少 //该方法也是在游戏一被创建的时候就调用,也就是用来初始宽高的方法 super.onSizeChanged(w, h, oldw, oldh); //获取手机较窄的长度,-10是用来间隔每个卡片的距离,用手机的宽除以4就是每个卡片的长度了 int cardWidth = (Math.min(w, h) - 10) / 4; addCards(cardWidth, cardWidth); startGame(); } //增加卡片,形成4*4的矩阵 private void addCards(int cardWidth, int cardHeight) { Card c; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { c = new Card(getContext()); c.setNum(2); addView( c, cardWidth, cardHeight); //顺便把初始化时新建的卡片存放在新建的二维数组中 cardsMap[x][y] = c; } } } //开始游戏,初始化16个card public void startGame() { MainActivity.getMainActivity().clearScore(); for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { cardsMap[x][y].setNum(0); } } addRondomNum(); addRondomNum(); } //判断游戏结束 private void endGame(){ boolean isfull=true;//判断卡片是否铺满的标志变量 for (int x = 0; x < 4; x++) { for (int y = 0; y < 4; y++) { if (cardsMap[x][y].getNum()==0 ||(x>0&&cardsMap[x][y].equals(cardsMap[x-1][y])) ||(x0&&cardsMap[x][y].equals(cardsMap[x][y-1])) ||(y 0) {//除了第一列以外的数,如果存在一个数大于0 if (cardsMap[x][y].getNum() = 0; x--) { for (int x1 = x - 1; x1 >= 0; x1--) { if (cardsMap[x1][y].getNum() > 0) { if (cardsMap[x][y].getNum() 0) { if (cardsMap[x][y].getNum() = 0; y--) { for (int y1 = y - 1; y1 >= 0; y1--) { if (cardsMap[x][y1].getNum() > 0) { if (cardsMap[x][y].getNum()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3