1。游戏界面布局
由textview1 与textview2 来显示分数,2048游戏主界面由gridlayout组成,底部添加Button重启游戏。
2.创建游戏主类Gameview
在构建函数中添加初始化方法initGameView();
在初始化方法initGameView()中setOnTouchListener()来监听触摸事件,并为上下左右触摸事件添加方法swipeUp(),swipeDown(),swipeLeft(),swipeRight();
判断触摸事件代码:
public boolean onTouch(View v, MotionEvent event) { switch(event.getAction()){ case MotionEvent.ACTION_DOWN: startX = event.getX(); startY = event.getY(); break; case MotionEvent.ACTION_UP: offsetX = event.getX() - startX; offsetY = event.getY() - startY; if(Math.abs(offsetX)>Math.abs(offsetY)) { if(offsetX<-5){ swipeLeft(); }else if(offsetX>5){ swipeRight(); } }else{ if(offsetY<-5){ swipeUp(); }else if(offsetY>5){ swipeDown(); } } break; }
在自定义的类里面必须要包括一个构造函数 XXX(Context context,AttributeSet attr){super(context,attr);}
在XML中使用 package.class 来调用,如报名为com.test 类为HelloWorld 则在XML中 <com.test.HelloWorld/>
layout_main.xml中 。
<com.mark.game.my2048.GameView android:id="@+id/gameView" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" > </com.mark.game.my2048.GameView>
其中 android:layout_height="0dp" android:layout_weight="1"用来表示 用来分配剩余空间。1表示权重
时间: 2024-10-27 10:39:32