Android使用键盘控制小飞机的移动

来源:互联网 发布:如何注册域名步骤 编辑:程序博客网 时间:2024/05/04 18:07

使用安卓虚拟按键控制小飞机的移动小demo


小飞机的View

public class plain extends View{  public float x;            这是定义的飞机的x轴 位置坐标 public float y;   Bitmap plain;            新建plain          public plain(Context context) {  super(context);  plain = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher);         为plain设置资源 一个飞机的图片  setFocusable(true);            设置可成为焦点  可以绑定监听事件 }  public void onDraw(Canvas canvas){   画布       super.onDraw(canvas);  Paint p = new Paint();           新建画笔  canvas.drawBitmap(plain, x, y, p);      画图 } }


主Activity

public class MainActivity extends ActionBarActivity {    private int  spend = 10;       设置初始的速度    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //setContentView(R.layout.activity_main);          requestWindowFeature(Window.FEATURE_NO_TITLE);  设置全屏          final plain plainv = new plain(this);      创建plain类          setContentView(plainv);                   //plainv.setBackgroundResource(R.drawable.bk);          WindowManager windowmangr = getWindowManager();            Display display = windowmangr.getDefaultDisplay();          DisplayMetrics metrics = new DisplayMetrics();         获取到屏幕宽高          display.getMetrics(metrics);          plainv.x = metrics.widthPixels/2;          plainv.y = metrics.widthPixels-40;                    plainv.setOnKeyListener(new OnKeyListener() {        设置键盘监听事件      @Override   public boolean onKey(View source, int keycode, KeyEvent event) {           switch (event.getKeyCode()) {     case KeyEvent.KEYCODE_S:       plainv.y  += spend;      break;     case KeyEvent.KEYCODE_W:       plainv.y  -= spend;      break;     case KeyEvent.KEYCODE_A:       plainv.x  -= spend;      break;     case KeyEvent.KEYCODE_D:       plainv.x  += spend;      break;     default:      break;     }           plainv.invalidate();    return true;   }  });    }}



0 0
原创粉丝点击