Android 游戏开发之旅一 长按Bu tton 原理 今天Android123 开始新的Android 游戏开发之旅系列,主要从控制方法(按键、轨迹球、触屏、重力感应、摄像头、话筒气流、光线亮度)、图形 View( 高效绘图技术如双缓冲)、音效(游戏音乐)以及最后的OpenGL ES(Java 层)和 NDK 的OpenGL 和 J2ME 游戏移植到 Android 方法,当然还有一些游戏实现惯用方法,比如地图编辑器,在 Android OpenGL 如何使用 MD2 文件,个部分讲述下 Android 游戏开发的过程最终实现一个比较完整的游戏引擎。相信大家都清楚 Android Market 下载量比较好的都是游戏,未来手机网游的发展相信 Android 使用的Java 在这方面有比iPhone 有更低的入门门槛。 对于很多游戏使用屏幕控制一般需要考虑长按事件,比如在动作类的游戏中需要长按发射武器,结合 Android Button 模型,我们实现一个带图片的Button 的长按,为了更清晰的显示原理,Android 开发网这里使用 ImageButton 作为基类 public class RepeatingImageButton extends ImageButton { private long mStartTime; //记录长按开始 private int mRepeatCount; //重复次数计数 private RepeatListener mListener; private long mInterval = 500; //Timer 触发间隔,即每 0.5 秒算一次按下 public RepeatingImageButton(Context context) { this(context, null); } public RepeatingImageButton(Context context, AttributeSet attrs) { this(context, attrs, android.R.attr.imageButtonStyle); } public RepeatingImageButton(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); setFocusable(true); //允许获得焦点 setLongClickable(true); //启用长按事件 } public void setRepeatListener(RepeatListener l, long interval) { //实现重复按下事件 listener mListener = l; mInterval = interval; } @Override public boolean performLongClick() { mStartTime = SystemClock.elapsedRealtime(); mRepeatCount = 0; post(mRepeater); return true; } @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_UP) { // 本方法原理同onKeyUp的一样,这里处理屏幕事件,下面的onKeyUp 处...