Android游戏开发之旅.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android 游戏开发之旅一 长按 Button 原理 今天 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; //T触im发er间隔,即每 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 inter实va现l)重{复/按/ 下事件 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 处理 Android 手机上的物理按键事件 removeCallbacks(mRepeater); if (mStartTime != 0) { doRepeat(true); mStartTime = 0; } } return super.onTouchEvent(event); } //处理导航键事件的中键或轨迹球按下事件 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_CENTER: case KeyEvent.KEYCODE_ENTER: super.onKeyDown(keyCode, event); return true; } return super.onKeyDown(keyCode, event); } //当按键弹起通知长按结束 @Override public boolean onKeyUp(int keyCode, KeyEvent event) { switch (keyCode)

文档评论(0)

文章写作专家 + 关注
官方认证
服务提供商

本司主营文章撰写、培训教材、合同协议、发言稿、策划、汇报、各类文案。 ~ 海量资深编辑老师无缝对接,一对一服务。 ~ 保原创!可加急!免费改!

认证主体张家港市尚博锐艺术培训咨询有限公司
IP属地江苏
统一社会信用代码/组织机构代码
91320582302062995R

1亿VIP精品文档

相关文档