本博客是记录学习历程的,主要用于方便自己以后查阅复习相关知识
package com.example.eventmanage;
import com.wnl.view.PlaneView;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnKeyListener;
import android.view.Window;
import android.view.WindowManager;
public class MainActivity extends ActionBarActivity {
private int speed= 10;//飞机速度
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题
/** getWindow():取得当前Activity的View的Window实例
*
*/
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);//全屏显示
super.onCreate(savedInstanceState);
final PlaneView planeView=new PlaneView(this);
setContentView(planeView);
planeView.setBackgroundColor(android.R.color.background_dark);
//Retrieve the window manager for showing custom windows
WindowManager windowManager=getWindowManager();//为展示自定义View准备
Display display=windowManager.getDefaultDisplay();//取得windowManager关联的Display
/*
* DisplayMetrics类描述了一个display的一般信息,
* 例如大小,密度等
*/
DisplayMetrics metrics=new DisplayMetrics();
//取得描述display的metrics
display.getMetrics(metrics);
/**getWidth()和display.getHeight()方法以及被抛弃,
* 使用getSize (Point outSize)来代替
*
* 注意: getSize (Point outSize)的返回值不一定就是屏幕的真实大小,
* 因为有时候应用的窗口使用了视图修饰,例如ActionBar等控件来影响了
* 窗口大小的测得值
*/
planeView.current_x=display.getWidth()/2;
planeView.current_y=display.getHeight()-40;
planeView.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
switch (event.getKeyCode()) {//getKeyCode()返回的是物理键
case KeyEvent.KEYCODE_S:
planeView.current_y+=speed;
break;
case KeyEvent.KEYCODE_W:
planeView.current_y-=speed;
break;
case KeyEvent.KEYCODE_A:
planeView.current_x-=speed;
break;
case KeyEvent.KEYCODE_D:
planeView.current_x+=speed;
break;
}
planeView.invalidate();
return true;
}
});
}
}
本博客介绍了一个简单的Android游戏控制实现方案,通过监听键盘事件来控制游戏中的飞机移动。该方案利用了Android支持库中的组件,并获取设备屏幕尺寸来确定飞机的位置。
&spm=1001.2101.3001.5002&articleId=51387492&d=1&t=3&u=be4564f930e54bcf81ec9140ba278ab3)
2361

被折叠的 条评论
为什么被折叠?



