说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Android开发中FPS游戏实现的两种方式比较

HTML文档下载 WORD文档下载 PDF文档下载
FPS (First Personal Shooting)第一人称视角射击游戏顾名思义就是以玩家的主观视角来进行射击游戏。本文详细介绍了此类游戏实现的方式。

如何用Android平台开发FPS游戏,其实现过程有哪些方法,这些方法又有哪些不同的地方呢?首先让我们先了解下什么是FPS

英文名:FPS (First Personal Shooting)

  第一人称视角射击游戏顾名思义就是以玩家的主观视角来进行射击游戏。玩家们不再像别的游戏一样操纵屏幕中的虚拟人物来进行游戏,而是身临其境的体验游戏带来的视觉冲击,这就大大增强了游戏的主动性和真实感。早期第一人称类游戏所带给玩家的一般都是的屏幕光线的刺激,简单快捷的游戏节奏。随着游戏硬件的逐步完善,以及各种类游戏的不断结合。第一人称射击类游戏提供了更加丰富的剧情以及精美的画面和生动的音效。例如我们玩的CS、Quake系列、UT系列、荣誉勋章、使命召唤、DOOM、彩虹6号、杀手47系列、穿越火线、反恐精英Online等等游戏。

方式1.

  private boolean drawall=false;
 private RefreshHandler mRedrawHandler = new RefreshHandler();
    class RefreshHandler extends Handler {

        @Override
        public void handleMessage(Message msg) {
         KetrisCanvas.this.update();
         KetrisCanvas.this.invalidate();
        }

        public void sleep(long delayMillis) {
         this.removeMessages(0);
            sendMessageDelayed(obtainMessage(0), delayMillis);
        }
    };
    long mLastMove=0;
    long mMoveDelay=30;
    public void update() {
            long now = System.currentTimeMillis();

            if (now - mLastMove > mMoveDelay) {
                //gameLogic(); 这里是游戏逻辑
             
                mLastMove = now;
            }
            mRedrawHandler.sleep(mMoveDelay);
        
    }
public void onDraw(Canvas canvas)
{super.onDraw(canvas);
 this.paint(); //这里是绘制到缓冲屏幕
 canvas.drawBitmap(g.offs, 0, 0, g.p);
}

在适当位置执行update();

方式2.

public class KetrisCanvas extends SurfaceView implements SurfaceHolder.Callback

{  

在构造方法完成   下面2句
     holder = this.getHolder();//获取holder
     holder.addCallback(this);


@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
  int height) {
 // TODO Auto-generated method stub
 
}

Thread t;
boolean isrun=true;
final SurfaceHolder holder;
@Override
public void surfaceCreated(SurfaceHolder holder) {
 // TODO Auto-generated method stub
 
  t=new Thread(){
  public void run()
  { while(isrun)
  {
   long start=System.currentTimeMillis();
      Canvas canvas=KetrisCanvas.this.holder.lockCanvas(null);
    //这里完成游戏逻辑  

    paint();//这里是屏幕绘制
      canvas.drawBitmap(g.offs, 0, 0,null );
      
      KetrisCanvas.this.holder.unlockCanvasAndPost(canvas);
      long end=System.currentTimeMillis();
      if(200>end-start)
      {
       try{Thread.sleep(200-(end-start));}catch(Exception e){}
      }
  }
  }
 };
 t.start();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
 // TODO Auto-generated method stub
 if(t!=null)
 { isrun=false;
 }
}

转载自:http://blog.csdn.net/sdhjob/archive/2009/12/22/5054455.aspx

中国创新碰撞硅谷思潮, 2013云世界大会定义云时代 Mozilla与设备商、运营商成立开放Web设备联盟 研发周报:暴露程序员身份的8个行为 专访“月熊志”公益网站技术负责人:利用技术的力量保护动物 【Hadoop技术博客推荐】站在风口的Hadoop技术研究者 2014趋势预测,大数据将成主流 国人当自强:两岸三地在线编程学习网站大搜罗 一周消息树:微软畏惧Chromebook、苹果失去优秀工程师 Google Dart语言开启标准化历程,取代JavaScript仍艰难 11款网站死链检测工具 谷歌Chromecast 2014:开放SDK、建生态系统 大举进攻客厅 优秀程序员的6个共同特质 开源的力量:“中国杯”游戏极限开发大赛 GNOME.Asia 2014年峰会时隔六年重返北京 JavaScript社区开发者调查:服务端JS盛行,Backbone.js使用最多 为什么开发者担心将代码公布 【投稿】移动互联网初创团队7大云计算服务实践分享 云计算发展越快,中小IDC发展机遇越好 前富士康CEO程天纵:创客与资本间并无矛盾 【开源专访】Java高效开发框架Nutz:是SSH的轮子?还是新神器? 仿Google Now和Siri?微软WP8.1将推语音助手Cortana NodeJS无所不能:细数10个令人惊讶的NodeJS开源项目 【快讯】18-19日,亚马逊AWS负责人Andy Jassy会在北京说什么,做什么? 数据库未来的5大预测 华为王丰谈华为一体机三大优势 FusionCube SQL Server针对Windows集群加速 浏览器基准测试:IE11成绩惊人 移动开发工具访谈《近匠》第02期:梆梆安全——APP安全之道 罗永浩:ROM创业,锤子科技A轮融资7000万 独立开发者的自白:Objective-C最糟糕的13件事 回顾Google这一年——Android篇 百度手机卫士正式发布 “防吸费”功能全球首创 如果我想给date grid控件加一些功能,比如加一个复选框,可以判断哪项被选中,该怎么加? 分区问题 sos 请问如何在自己的软件中加入注册功能? 请教一个问题 请问怎样使动态创建的控件响应一个事件 windows编程高手请进 我真惊了,小弟刚用VB6,请问,VB6怎么会有乱吗问题?怎么解决!各位大侠请帮忙!! 如何使一段程序停止运行,并自动释放相应的堆栈? 请问西安哪儿能买到《The C++ programming Language》? 谁能告诉我#include <fstream>和#include <fstream.h>的区别? 条件?返回值1:返回值2???? 在CEDIT的CHANGE事件中怎么不可以用CEDIT::REPLACESEL()?? 打印高手请进 谢了 简单的键盘消息! 如何在表里添加列? dll调用的问题 请知道NotesSMEI的高手帮忙 奇怪错误 如何用ATL创建一个全局COM(只启动一个实例)供所有客户端使用? 如何修改一个域的值?用@SETfield吗? 怪! 怪! 怪! 为何存储不上数据???(急) 我真惊了,小弟刚用VB6,请问,VB6怎么会有乱吗问题?怎么解决!各位大侠请帮忙!! 急救!!用pb写登陆界面出现的大问题! 欢迎大家来! 急!如何在一个form窗体里面来移动线条,就象类似于画基本的电路图那样,谢谢高手的指教!!! 哪儿有<<新编计算机绘图>>下载啊? 给高分 急!如何在一个form窗体里面来移动线条,就象类似于画基本的电路图那样,谢谢高手的指教!!! 可以用网页文件重新启动机器吗? 高手请看看!!!如何用ATL创建一个全局COM(只启动一个实例)供所有客户端使用? 哪里能下载到vs.net正式版?(100分) pascal 谁知道有没有创建Service的好工具? 谁来介绍一下CORBA ? 请教ODBC SQL中 CONVERT的用法? 笔记本电脑开不了机!!!! 关于ClientDataSet SQL动态参数的问题? 关于在PB的script中直接嵌入SQL 单机使用什么数据库最好! 怎么远程启动一个程序? 一个XSLT的小问题 C++Builder高手回答!!(关于在NOVELL上的应用) 急!请问哪位高手知道怎么用VB来开发组态软件。请多提提建议! 大家好!~新人来了!~ 如何实现MicroHelp即状态栏的分段 麻烦各位介绍几个有SCJP模拟题的网址!谢谢!!!! 关于Read&Data! 现在只能显示最新的120篇,能不能家多点呀,例如最新1000篇? VS.net哪里有正式版的下载呀?大侠们有没有地址呀? 谁能告诉我哪儿有TR下载,不是TRW,谢谢!50分相送~ 求助!!急!急!…… 三线接近开关怎么接? 某纳盐溶液可能含有硝酸根、碳酸根、亚硫酸根、硫酸根、碘离子、CL-、Br-.为了鉴定这些离子,分别取少量溶液进行以下实验:5,加HNO3酸化后,加过量AgNO3,溶液中析出白色沉淀.分析上述实验, 高中化学常见的带色物质 三线接近开关与两线接近开关怎样串联 【高中化学】离子推断题某无色溶液由Na+、Ag+、Ba2+、Al3+、AlO2-、MnO4-、CO32-、SO42-中的若干种组成.取该溶液做如下实验:(A)取适量试液,加入过量盐酸,有气体生成,并得到溶液.(B)在 高中化学常见的物质颜色 两线接近开关和三线有什么区别? AB是Na2CO3 和Ba(OH)2 为了确定X,现将(1)中的两种物质记为A和B,当C与B的溶液混合时,产生红褐色沉淀和无色无味气体;当C与A的溶液混合时产生棕黄色沉淀,向该沉淀中滴入稀HNO3,沉淀部分溶解,最 请部师傅们磁性开关与接近开关的使用是一样吗?它们的功能一样吗?可以互换使用吗? 3线接近开关控制2线气控电磁阀如何接线 利用澄清石灰水可以验证人的呼吸作用能否产生二氧化碳这句话是对是错 接近开关和磁性开关及光电开关的区别? 细菌呼吸作用有哪几种类型?各有什么特点? 人的呼吸作用为什么会消耗氧气,产生二氧化碳? 干簧管怎么样做磁性接近开关 生物的呼吸作用表示为:有机物+O2——CO2+H2O+能量.以下关于有机物组成元素推断正确的是( )A只含碳元素B只含碳元素和氢元素C一定含碳元素氢元素和氧元素D一定含有碳元素和氢元素,可能含 人的呼吸作用在哪进行?人的呼吸作用进行的场所是哪?血液?细胞?并不是问气体交换场所. 而是发生化学变化的场所. 也就是葡萄糖和氧气发生变化的场所 接近开关和磁性开关的线径一般是多大的 硝化细菌只能进行有氧呼吸吗 希望能把初二用到的所有公式都发过来,如果完整会提高悬赏! 接近开关,磁性开关的功耗?如题,各种传感器的功耗怎么算?需要知道它的什么参数才能算出来?例如一台设备上共用了100个磁性开关,开关电源应选多大?还有关于设备功率估算问题,一台三相设 硝化细菌固定CO2时会产氧气吗?据说所有自养型生物都会产生氧气(当然指非厌氧型的),是不是? 【化学问题】设计一个实验证呼吸作用产生二氧化碳. 铁盐 无色什么铁盐是无色,或极浅的颜色,而且浓度不是太低 硝化细菌怎么进行有氧呼吸 归纳初二物理每章的公式,每一个知识点的影响因素例如:电流的影响因素有导体的电阻和导体两端的电压 什么是断电延时继电器的常开触点(常闭触点)?断电延时继电器断电后,经过一段时间的延时,触点动作,这个没有疑问.那么断电延时继电器在线圈通电时的状态是常态还是非常态:即常闭触 呼吸作用一定产生二氧化碳吗 硝化细菌能进行有氧呼吸? 空气中含有什么成分 小学六年级英语活动手册45——49页的答案.教育科学出版社的. 饱和碳酸钠溶液,澄清石灰水可选用鉴别的试剂有;A盐酸 B硫酸 C硝酸 D氯化钡溶液 E氯化钠溶液 答案为ABCD 问:1.问什么硝酸能鉴别出饱和碳酸钠溶液,澄清石灰水?2.它们加入硝酸后都无明显变 空气含有什么成分 六年级下册活动手册unit5怎么做啊. 分别写出下列反应的化学反应方程式及离子方程式:一、向NaHSO4溶液中逐滴加入Ba(OH)2.①SO42ˉ恰好完全沉淀.②溶液恰好呈中性.③向②中继续滴加Ba(OH)2.二、向Ba(OH)2溶液中逐滴加入NaHSO4.①Ba2 空气里含有哪些成分? 两线制接近开关与三线制接近开关的区别大侠好,请问两线制接近开关与三限制接近开关在接线上有什么区别,在用途上有什么区别,在电路中怎么选择用两线制的还是用三线制的接近开关,二者 高中化学离子反应简单习题 空气中含多少成分? 接近开关二线 三线 区别 重庆液压油缸厂电话? 气缸上磁性开关的工作原理 六年级下册语文七色光1记一次体育比赛作文 西安液压油缸 气缸的磁性开关有什么作用那我们不用磁性开关是不是也可以,因为我们有电磁阀呀!是不是因为磁性开关使动作可以马上反应,不必设置时间? 六年级下学期作文《记一次体育比赛》 武汉液压油缸 熟石灰是不是石灰水 记一次体育比赛作文 有什么好方法吗?举例说明下. 熟石灰是不是就是澄清石灰水 作文:记一次体育比赛最好不是拔河,拔河千篇一律,太老套 某混合物水溶液,可能含有以下离子中的若干种:K+、NH4+、Cl-、Ca2+、CO32-、SO42-,现每次取100 ml溶液分别进行下列实验:①加入AgNO3溶液,有沉淀产生②加入足量NaOH溶液后加热,收集气体0 气缸磁性开关有一个磁性开关,上面标有24伏电压,是什么意思,另外它只有两条线,指示灯怎么会亮.[两条线不就是个开关而已,怎么还有电压有指示灯呢] 记一次体育比赛的作文 写离子方程式的时候是先写总的反应方程式,然后才是把易电离易溶解的拆开来写离子方程式,那么要看一个无机物是否可以拆开来是要怎么看的呢? 现有一气缸,其型号为不带磁性,此时如果在气缸上安装一磁性开关,磁性开关是否能够正常工作? 三线接近开关与四线接近开关的区别? 某无色透明溶液中可能含有下列离子K+,H+,Ba2+,OH-,CO32-,Cl-,NO3-且该溶液能与AL反应放出H2.取三只试管,分别加入少量反应后的溶液进行如下实验:1、一只滴加一定量KOH溶液,有白色沉淀产生.2、一 气缸运动的话用磁性开关好还是接近传感器?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘