android写个贪吃蛇
时间: 2023-05-17 15:02:36 浏览: 52
非常感谢您的提问,以下是一个简单的 Android 贪吃蛇游戏的代码示例:
```java
public class SnakeGame extends Activity implements OnTouchListener {
private SnakeView mSnakeView;
private TextView mStatusText;
private GestureDetector mGestureDetector;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.snake_layout);
mSnakeView = (SnakeView) findViewById(R.id.snake);
mStatusText = (TextView) findViewById(R.id.status);
mSnakeView.setOnTouchListener(this);
mGestureDetector = new GestureDetector(this, new GestureListener());
}
@Override
protected void onResume() {
super.onResume();
mSnakeView.resume();
}
@Override
protected void onPause() {
super.onPause();
mSnakeView.pause();
}
@Override
public boolean onTouch(View v, MotionEvent event) {
return mGestureDetector.onTouchEvent(event);
}
private class GestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onDown(MotionEvent e) {
return true;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
float dx = e2.getX() - e1.getX();
float dy = e2.getY() - e1.getY();
if (Math.abs(dx) > Math.abs(dy)) {
if (dx > 0) {
mSnakeView.setDirection(SnakeView.DIRECTION_RIGHT);
} else {
mSnakeView.setDirection(SnakeView.DIRECTION_LEFT);
}
} else {
if (dy > 0) {
mSnakeView.setDirection(SnakeView.DIRECTION_DOWN);
} else {
mSnakeView.setDirection(SnakeView.DIRECTION_UP);
}
}
return true;
}
}
}
```
这是一个简单的贪吃蛇游戏的实现,其中 SnakeView 是一个自定义的 View,用于绘制游戏界面和处理游戏逻辑。在 onCreate 方法中,我们将 SnakeView 和一个 TextView 绑定到布局文件中的对应控件上,并设置了一个 OnTouchListener,用于处理用户的触摸事件。在 onResume 和 onPause 方法中,我们分别调用了 SnakeView 的 resume 和 pause 方法,用于控制游戏的暂停和恢复。在 onTouch 方法中,我们将触摸事件传递给了 GestureDetector,用于处理用户的手势操作。在 GestureListener 中,我们根据用户的手势操作来改变蛇的移动方向。
希望这个代码示例能够帮助您实现一个简单的贪吃蛇游戏。如果您有任何问题或建议,请随时与我联系。