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

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

糗事百科王坚:百度云推送让我们省心 10个最热JavaScript开源框架的社区活跃度对比 2013福布斯中国富豪榜:李彦宏第三、马化腾第五、马云第八 Storm又获东风,Hortonworks计划将其整合到Hadoop企业版 IBM CEO:预测高新技术 五个我最喜欢的方式 我伙呆,硅谷高级工程师年薪16.5万美金起 羡煞旁人的Supercell:Clash of Clans卫冕营收榜冠军 谷歌第三财季利润增36.5% 但摩托罗拉业务继续亏损2.48亿 针对应用开发者的几点建议:注意特征蔓延、加大用户评审…… Ubuntu中文衍生版UbuntuKylin 13.10正式发布 Web设计师和Web开发者之间的区别是什么? 在政府退出后,Google的量子计算机项目面临危机 SQL on Hadoop的最新进展及7项相关技术分享 联想:欲收购黑莓,还能在智能手机领域创造PC神话吗? 谁说Android开发者的收入依然不行? 代码可维护性的神秘面纱 MDCC 2013首批演讲嘉宾名单出炉 议题即将披露 MDCC2013:公开征集讲师和演讲主题 移动周报:IT人必看!9大最火移动开发技能 OpenStack H版发布 盘点2013:21个最火的云初创公司 从摩尔定律到原子计算,2013诺贝尔物理学奖背后的计算机技术 黄峻:从自制纸板键盘的孩子到Adobe技术经理的故事 Web开发正被颠覆 开发者需认清五大新现实 最发人深省的亚马逊面试题,你会如何作答? 所见即所得:8款实用HTML5开发框架 Groovy最受欢迎 Java系开发者更偏爱其他JVM类语言?(图) [开源专访]iNews创始人赵戈戈:36小时开发的PHP版HackerNews 使用Spring框架的12个开源项目 甲骨文仍旧“憎恨”开源软件 开发者应该避免使用的6个Java功能 谁能给出在浏览器中不断显示鼠标位置的最简单javascript代码? PHP如何调用VB生成的DLL(DCOM中间层中的类) 如何用WinSock远程控制修改一台电脑的注册表?请高手给个思路或源码,谢谢!高分相谢。 求一曲线拟合的简单高效算法!最好有源码或伪代码! 请解释一下ActiveX控件中的方法和事件有什么区别? 有谁知道如何设置CreateDirectoryEX中的参数 请问在VC6.0中如何把数据文件做进可执行文件中?在线等待...... 编写DLL时,如何获得某一消息的lParam和wParam参数值 数据维护问题,请大家多多帮忙!在线等待! 请问如何取得用户在控制面板的国别设置中所设的国家或地区是什么? SaxException:File "c:\xml\reports.xml"not found MOV large fs:0 1234h是什么东西? 网页上浮动图片怎么做阿?急~~~ 无模对话框 我到底错在哪? 问一个很简单的问题?如何做一个链接到框架页! 这是不是病毒? 新作一系统需要用条形码输入,用asp.net作,需要与条形码输入器的硬件进行交流吗?条形码的硬件选用什么比较好?价格是多少? 请问各位大虾,那里有COM以及COLLECTION对象编程的文章和例程? 一个保存文件对话框的问题 一个很菜的问题,实在不会 sql语句怎么写? 关于服务器端和客户端通信的问题,急,请各位大虾帮忙 error LNK2001: unresolved external symbol "public: char __thiscall bcdtoasc::secondchar(char)" (?secondchar@bcdtoasc@@QAEDD@Z) 文本框的问题 关于 ACCESS 添加记录的问题? 为什么我在数据窗口中的sql语句中使用参数有错误?提示invalid和不完整! 在UNIX下如何编译C++程序 请教一个COM对象创建的问题 如何获取DropDownlist的SelectedItem.Text? lirun(笨笨狗)请进来领分 怎么得到数据库中的id值。 有点痛,不知道是什么病,大家帮忙看看 GOOGLE被中国"冷处理" 请介绍一本好一点的Winsock函数编程的书,电子书或者纸书都可以 关于全局CDatabase; mysqldump备份数据库时总是出错? 谁有http://211.100.6.72的源代码最好有附带的数据库连接说明。200 在2000server上安装oracle的问题,求教! 怎样深层理解delphi的类变量 数据库中日期范围怎么比较? 如何将Access的数据导入SQL-server 散分了,高手请进---.net不能够bug ???怎样在Delphi中对导出到Excel文件单元格进行划线???? 在VB中如何进行程序的数据输入有效性验证? 请上次回答我NT问题的同志进来拿分,上次只给了100 如何学winzip那样,在弹出菜单中增加一个新的项目 英国有好点的软件公司吗? 高分求救水晶报表问题? 从数据库中取最新的第10~第20条纪录的sql语句如何写啊?各位大侠帮忙啊 记录集问题 用哲学观点看服装发展史联系马克思主义哲学,看服装发展字数2000 这个图像为什么斜率为负 温度计如何读数怎样看温度计的摄氏度(不是体温计)0下几摄氏度怎么看,每1cm代表多少摄氏度,回答的好的附加100分,不好的不加分 使SDS-聚丙烯酰胺凝胶电泳具有高分辨率的三个因素是什么 太空里可以做什么实验快 假如一个温度计的读数是11C(就是那个摄氏度的符号,我这里打不出来),那么这个读数读作( )假如读数是-6C,这个读数读作( ) SDS-聚丙烯酰胺凝胶电泳和琼脂糖凝胶电泳?比较说明SDS-PAGE(SDS-聚丙烯酰胺凝胶电泳)和琼脂糖凝胶电泳的物质分离原理和特点? y=-x的图像斜率是1还是-1?斜率有负的吗? 看温度计读数 童趣 文言文急 在太空中不能做什么实验 这个温度计怎么读数阿 初一文言文(《童趣》)一.多义词之:故时有物外之趣( ) 心之所向( )昂首观之( )然:怡然自得( )庞然大物( )二.(藐小之物) 藐:(细察其纹理) 纹理:(使之冲烟而飞鸣) 经过点(1.-2)和0负1的直线的斜率是什么? 碱灰石是什么 最大的昆虫有多大?在那个地区? 航天员在太空做什么实验 如图,宇宙飞船A在低轨道上飞行,为了给更高轨道的宇宙空间站B输送物质,需要与B对接,它可以采用喷气的方法改变速度,从而达到改变轨道的目的,则以下说法正确的是A、它应沿运行速度方向喷 人类了解历史的途径有哪些? 飞船对接为啥是从低轨道加速?从高轨道减速 能对接上么? 碱的俗称是什么?只是想问问 昆虫最大有多大无 有机活性碱的食品是什么?一定要对.好的追加50分 目前航天飞船的飞行轨道都是近地轨道,一般在地面上方300km左右的轨道上飞行,绕地球飞行一周的时间约为90min左右.若飞船在赤道上空飞行,那么飞船里的航天员在24h内可以见到日出的次数可 最小的而且会飞的昆虫有多大?我想知道,世界上最小的飞虫有多大?我们是不是可以将它看作是一架微型智能飞行器,其精密程度是非人工所能创造出来的,它是大自然的杰作! 请问富含植物有机活性碱的食品有哪些 小苏打是俗称的碱吗?可以当碱用吗? 高一生物要不要背细胞学说建立历程要不要背什么比夏列文虎克施莱登之类的,还是只要背细胞学说的主要内容?如果要背,要背哪些 什么含有机活性碱 飞行的宇宙飞船中可以用哪种笔钢笔 毛笔 铅笔 中性笔可以用哪个 为什么 高中生物 历史上细胞学说的建立过程.详细但不冗长! 使用下面三个词语组成一段话 蓦然 羁绊 奔突 直线l过原点和(-2,2)求直线斜率求只限倾斜角, 细胞学说的建立过程,是一个——————过程 用下列词语组成一段话自出心裁,雷同,别具匠心 五孔一开关插座如何接?开关接灯,五孔供电.如图,怎么接.能够画个简易图的更感谢. 人体细胞新陈代谢要多久能换一遍 具体多长时间 选用以下词语组成一段话?请用以下词语组成一段话,大约300字,至少选3个词,耸峙云霄 黯然失色 惊心动魄 洪荒 啃噬 不盈不溢 推山拆地 扶摇 端倪 翎毛 燧木取火 泯灭 五孔一开关插座怎么接,开关只有一个接线口 人体细胞几天可以完全的换新?人体细胞经过新陈代谢,经过几天可以完成更新成新的细胞呢?一个好的习惯养成需要三个月,一个好人生,需要十年的追逐,那我们整个人换新到底最短需要多少时 宇宙飞船要在更高的轨道飞行应该点火加速,那么它是稳定后速度减小了,还是在加速过程中实际速度也在减小也就是说飞船虽然在加速,但由于轨道半径逐渐变大,实际速度却是在减小的?或是 五孔一开关插座的接法谢谢了,开关不要管着插座,开关 只管着 灯,然后插座长期有电,和开关没关系,大哥们别瞎说 我可不想接插了, 根据题目材料要求设计低年级段语文测试题低年级阅读材料牙齿的苦恼牙齿工作了一天真疲劳,晚上,准备好好睡一觉.不料,小主人又送来食物,命令它们赶快咀嚼.牙齿们只好全体行动,可心中都 人体细胞一天换多少个 航天器的飞行轨迹为什么是正弦曲线 在形成精子和卵细胞时,染色体减半进入,父母双方不是少一半么?染色体怎样变化? 请问人体细胞多久会全部更新一次?多久呢 我要重新做人 各个轨道的航天器速度不同,分别是多少?比如太阳同步轨道,极地轨道等 哪里有仓颉字典下载要收词量比较庞大的 人体细胞多长时间更新 那些植物中含有秋水仙碱,要现在有的植物. 中国字典中最难写的是什么字? 植物体内的四种组织,从要根本上说都是来自于?A、分生组织的分裂、分化 B、受精卵细胞的分裂、生长分化 C、保护组织的分裂、分化 D、营养组织的分化演变有些人说选A,有些人说选B,头都大 有没有什么简单的方法检测植物体内所含糖和碱成分的高低? 谁知道哲学的发展史?分析人是用什么的方式在认识世界的?唯物主义哲学是否是支持命运存在的? 2.下表是四种植物分生组织的细胞周期,有关叙述正确的是 植物 细胞周期的时间(h) a时期 b时期 合 计 物种1 10.6 0.4 11 物种2 18 0.5 18.5 物种3 16.5 2 18.5 物种4 10.4 2.3 12.7 A.四种 若直线斜率k=2,且过点(1,-2)的直线方程 高中生物(关于细胞学说,细胞是通过细胞分裂产生的 为什么不符合细胞学说老细胞通过细胞分裂产生新细胞,为什么符合细胞学说 求植物的基本组织中的机械组织与分生组织的特点(注意简洁明了). 如何用直线方程求直线斜率?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘