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

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

CoolBar上控件的排列顺序-Delphi资料 Delphi 4 WebBroker Delphi 中自做动态显示的控件 Delphi3的DBGrid中的下拉列表和查找字段编程方法 DELPHI常见问题 Delphi的竖排标签 DELPHI构件制作方法 DELPHI控件Tweblabel的编制 DELPHI中MEMO组件的光标定位 Delphi中RichEdit的奥妙 Delphi中TApplication类 Delphi中日期时间输入的简洁方法 delphi中怎么调用interbase数据库? Memo的Undo功能-Delphi资料 RECT在Delphi中的灵活使用 StringGrid制作只读列-Delphi资料 TADOQuery下主明细表其属性关系如何设置,如何保存主表和明细表?-Delphi资料 TBatchMove用法-Delphi资料 TMemo的真正插入字符-Delphi资料 TREEVIEW的使用-Delphi资料 TreeView在电信综合统计管理系统中的应用-Delphi资料 VB6.0动态加载ActiveX控件漫谈-Delphi资料 捕捉来自 Thread 的异常-Delphi资料 定制Speedbar-Delphi资料 动态产生构件并相应事件-Delphi资料 对Borland可视部件的一处改进-Delphi资料 控件使用技巧-Delphi资料 改变VCL的行为--一个使用可视化元件的实例-Delphi资料 具有不同字体的列表框-Delphi资料 快速大量地更改控件内容-Delphi资料 快速动态创建MenuItem-Delphi资料 斑竹!!!!!!!!!!!!!!!! 关于IE浏览 请问vb如何访问foxpro 6.0的数据库,最好有源程序,谢谢. he_cti@163.net 算了,散分 我散,我散,我散散散 散3 发分!!!! 发分!!!!! 发分!!!!!!!! 发分!!!!!!!!!!!! 发分!!!!!!!!!!!!!!!!!!! 请问如何去掉测试版软件的“购买”提示框???急急急急!!! 有关获取HTML中Frames的问题? 给分!!!!!啊 给分!!!!!啊!! 给分!!!!!啊!!!!!! 给分!!!!!啊!!!!!!!!!!!!! 给啊!!!!!!!!!!!!! 不是俺蓄意谋两位帮主的反,实在是 ... APPLET连接数据库。。。(我已经每粉了) 千分散尽不复来!!! 千分散尽不复来!!!! 千分散尽不复来!!!!! 千分散尽不复来!! 千分散尽不复来!!!!!!!! 千分散尽不复来!!!!!!!!! 千分散尽不复来!!!!!!!!!!!!! 用分把灌水乐园咽死!!!!! 千分散尽不复来!!!!!!!!!!!!!!!!! 千分散尽不复来!!!!!!!!!!!!!!!!!! 千分散尽不复来!!!!!!!!!!!!!!!!!!! 千分散尽不复来!!!!!!!!!!!!!!!!!!!!! 千分散尽不复来~ 千分散尽不复来~! 请教数据窗口的问题 千分散尽不复来? 千分散尽不复来?! 有LVS_OWNDATA属性的CListCtrl 加图标的问题,25分 在做会员注册时,在添加新数据页,程序一运行就在RS.updata出错,为什么(原程序) 高手请你回答我啦!!!! 我要回家了,第一个给300 哪有msproxy下载????? 请问要怎么样才能在自己写的程序运行时让用户无法使用开始菜单? jdbc的版本 发分!!!!!!!!! 对于初学者,应该学些什么样的数据库? Java的优点 化功大法第一章--散分。 吸星大发第一章--散分 i need help 葵花宝典第一章--散分 一个数的百分之60是120,这个数是多少 有10-80八个数,把它们分别入两个大圆上的五个圆圈内,使五个数的和为200,应该怎么填 问写“Saving the Earth”的英语作文人类的不明智之举:1,乱伐树木 2,乱扔垃圾 3,不加处理排放废物导致的问题:l,土地沙化 2,河水变脏 3,空气质量差 4,全球气温升高建议;合理化建议至少三条 A加A加B加B得于70,A加B等于多少 一个工人要加工120个零件,已经加工了百分之八十,还要加工多少个 地球表面约70%被海洋覆盖,人类为什么还缺水?请说出三个理由. 在三角形ABC中,角A=35°,角B=65°,则角C等于多少? 一个数的百分之60是120,这个数的10分之3是多少? 地球表面约百分之七十被海洋覆盖 人类为什么还缺水 A,B是自然数,A加B等于35,那么A乘B最大是多少 4.5乘80%等于多少 地球严重缺水的原因是什么 a+a+b+b=70 a+b等于几 3+3乘5等于 地球上有4/5的面积是海洋,那为什么还一直说缺水呢?我知道海洋是不能喝的,可是现在科技这么发达,就没有机器可以过滤这些海水吗?那样的话不就是不存在缺水问题了? a=b,a和b都不等于0,a与b成什么比例 3乘5等于几 为什么地球会缺水地区降水降是否和蒸发量有关?我们日常用掉的水流入江河,经过蒸发后下雨水流入地表,那为什么还会缺水?水循环中哪里丢失了淡水?寻求专业大虾我们提倡节约用水是节约 80分制的60和70相当于100分制的多少? 1-三分之二-九分之二-二十七分之二-八十一分之二-二百四十三分之二-七百二十九分之二 简算 80万年后地球会怎样 70人相当于80人的几分之几?谁知道啊 三分之一,负九分之二,二十七分之三,负八十一分之四,( ),( )按规律括号里填什么? 最近有什么大事件```急用```80分``越新越重大的越好..最好好最分析.. 1200乘以百分之108.8等于多少 三分之二加九份之二家二十七分之二加八十一分之二加二百四十三分之二用简便方法计算 100万年以后地球是什么样子?人穿着 家用电器 军队 科技等等是什么样子的 38乘以1200等于多少 九分之二除与27分之八等于多少 80-90年代中发生的大事件! 多少的百分之八十是六十 (1又三分之二+九分之八-1二十七分之二)×27 找一部外星人入侵地球的科幻电影在海上外星人发射了两个想轮子一样的东西、撞坏了高架桥 80增加到90,增加了百分之多少 九分之二加二十七分之四等于几? 美国外星人入侵地球的电影貌似就是外星人入侵地球,外星机器长着三只脚,非常高大,他们所到之处血染江河,将人绞成血丝,供外星人食用,他们的武器,飞船有防御系统,任何战机,坦克,大炮,甚 一百分之八十和百分之八十有什么不同和相同? 方是多少?三分之一+九分之二+二十七分之四+八十一分之八+三的n次方分之二的n-1次方等于多少? 外星人入侵地球的科幻片,最后通过鲸鱼和外星人对话挽救了地球的是哪部影片外星人的宇宙飞船就象一截粗木头这个影片我看过,科学家发现外星人对鲸鱼的叫声很亲切,知道鲸鱼能和外星人 1.200吨相当于320吨的百分之几 2.60千米比80千米少百分之几 若两百四十三分之三十二的n次方除以九分之四的n次方等于八分之二十七,求n的值 求美国外星人入侵地球以前看过的,很多飞碟入侵地球,外星人象八爪鱼似的,美国很久以前还抓到过,一直研究,在最后有个老头开飞机打飞碟没弹药了,直接飞进飞碟下边同归于尽了,请问这个片 0.8%等于一百分之几?80.8%等于百分之几? X乘以X等于40 ---------------------X=? 氯化钠在海水盐类物质中的比例?60%?70%?80%?90? 一件上衣原价120元,换季打折时降到80元,比原价降低了百分之几?相当于打了几折? 60乘以(x减1)等于40乘以(x加1)怎么做 为什么海水中的盐类主要是氯化钠?海水盐分组成表 盐 类 克 / 升 占盐类的 % 氯化钠 27.213 77.75 氯化镁 3.807 10.87 硫酸镁 1.658 4.73 硫酸钙 1.26 3.6 硫酸钾 0.863 2.50 碳酸钙 0.123 0.30 溴化镁 0.076 0.20 数学题:一件上衣原价240元,换季打折降到了80元,这件上衣的售价比原价降低了百分之几?要过程!在线等再问一个:某校四、五、六年级共有18个班,平均每班有48人,三个年级的人数比是4:2 多少?乘以百分之四十等于 0.125 为什么氯化钠占海水的盐类成分88.64%,在河水所占的比例却很低? 一件上衣原价120元,换季打折时降到8O元,比原价降低了百分之几?相当于打了几折? 把100,200,300,...,700,800这八个数,分别填入小圆圈里,使每个大圈上五个数的和是2100.一共八个小圆圈,五个小圆圈用绳子连在一起是一个大圆圈,两个大圆圈连在一起,有共同的两个小圆圈.不知道说 海水中氯化钠有80%吗? 一件上衣原价80元,换季打折时降到60元,这件上衣的价格比原来降了百分之几? 把10.20.30.40.50.60.70.80这八位数填入圆圈内,使每个大圆上的五个数的和是200有两组,每组有五个圆,其中有两个圆是套在一起共用的 每一千克海水中含有氯化钠等盐类约35克,所以海水是咸水,但可能变成淡水跑到地球上来海水到陆地上变成淡 形成天然水循环,这个过程包含了水的 和 两种物态变化 为什么 一件上衣原价240元,换季打折降到了80元,这件上衣的售价比原价降低了百分之几? 把10到80这八个数填入圆圈内,使每个大圆的五个数的和是200 图是一个3个圆的和一个5个圆的合在一起 以Saving the Earth为题目写篇作文人类的不明知之举:1.乱伐树木2.乱扔垃圾3.不加处理排放污水导致的问题:1.土地沙化2.河水变脏3.空气质量差4.全球气温升高建议:合理化建议至少3条开头:As time goe
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn