Android -snake源代码分析

Android ---snake源代码分析?privateintmMode READY public static final int PAUSE 0// 暂定public

Android ---snake源代码分析

?

private int mMode = READY ; public static final int PAUSE = 0; // 暂定public static final int READY = 1; // 准备好了public static final int RUNNING = 2; // 正在运行public static final int LOSE = 3; // 结束 , 输了游戏 ?

Android -snake源代码分析Android -snake源代码分析

public class DrawView extends View { private final int mTileSize = 12; private final String TAG = "DEMO" ; private Paint pa = new Paint(); private Bitmap mTileArray ; void loadImage(){ Resources r = this .getContext().getResources(); Drawable tile = r.getDrawable(R.drawable. redstar ); Bitmap bitmap = Bitmap.createBitmap ( mTileSize , mTileSize , Bitmap.Config. ARGB_8888 ); Canvas canvas = new Canvas(bitmap); tile.setBounds(0, 0, mTileSize , mTileSize ); tile.draw(canvas); mTileArray = bitmap; }public DrawView(Context context, AttributeSet attrs, int defStyle) { super (context, attrs, defStyle); // TODO Auto-generated constructor stub loadImage(); x = 10; y = 10; Log.i ( TAG , "DrawView 2" ); } // 如果没有这段代码,大家可以试一下,改用上面的代码,程序能否通过。 public DrawView(Context context, AttributeSet attrs) { super (context, attrs); // TODO Auto-generated constructor stub loadImage(); Log.i ( TAG , "DrawView 3" ); } @Override protected void onDraw(Canvas canvas) { super .onDraw(canvas); Log.i ( TAG , "onDraw 1" ); canvas.drawBitmap( mTileArray , x , y , pa ); }} ?

public SnakeView(Context context, AttributeSet attrs)public SnakeView(Context context, AttributeSet attrs, int defStyle) ?

<!--?

按键处理:

?

public  boolean  onKeyDown( int  keyCode, KeyEvent event) {       // TODO Auto-generated method stub         if (keyCode == KeyEvent. KEYCODE_DPAD_UP ) {             Log.i ( TAG , "KEYCODE_DPAD_UP" );                }        return super .onKeyDown(keyCode, event);          } 
?

@Override protected void onDraw(Canvas canvas) { super .onDraw(canvas); Log.i ( TAG , "onDraw 1" ); canvas.drawBitmap( mTileArray , x , y , pa ); } ?

@Override public boolean onKeyDown( int keyCode, KeyEvent event) { // TODO Auto-generated method stub if (keyCode == KeyEvent. KEYCODE_DPAD_UP ) { Log.i ( TAG , "KEYCODE_DPAD_UP" ); dv .setX( dv .getX()+10); dv .invalidate(); } return super .onKeyDown(keyCode, event); } ?

?

?

我把第一阶段的代码放在hello.rar文中,由于是对snake游戏的试验性的分析,就在原来的hello工程中改写,下次会弄一个干净的工程。我尽量把分析的事例代码写的简单,所以只做加up事件,大家可以自行完善。

?

1 楼 android_mini 2010-08-14  
我刚好在看贪吃蛇的游戏,下来研究研究