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

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

Docker:集装箱式“运输”在软件上的实现 《近匠》第09期:ShareSDK——专注社交分享工具 苹果车载iOS系统iOS in the Car界面被曝光 支撑过万亿音乐事件的数据分析系统 Facebook运维内幕曝光:一人管理2万台服务器 《近匠》第10期:友盟——开发服务平台化 LinkedIn耗资1.2亿收购数据驱动招聘服务公司Bright 谷歌推视频会议硬件产品Chromebox 基于Chrome OS 文件上传组件导致Apache DoS安全漏洞 EA,你是来拉仇恨的吗? Beep:前Google员工打造的流媒体音乐控制器 有利于开发App的5款天气预测API 七问微软新CEO,你准备好了吗? Hadoop虽然强大,但不是万能的 Flappy Bird:萌贱游戏日进斗金的烦恼 IT技术支持:索契冬奥会背后的无名英雄 简单10招,让你的云计算事业锦上添花 微软、谷歌及苹果从哪赚钱? 高大上!5.5寸屏幕的iPhone 6概念机来袭 苹果CEO Tim Cook:我们是一家快速发展的公司 2014年美国大学生数学建模竞赛翻译及建模思路 围观龙虎斗:谷歌GCE vs. 亚马逊AWS,要做9件事 未来编程趋势的12个猜想 命令行永存... IBM发布SmartCloud数据虚拟化服务 嚓嚓嚓嚓:虐心的Flappy Bird今日终于下架 Flappy Bird不再“飞翔”后,还剩下什么? 索尼抛售PC业务:内忧外患导致全面退出 慧正通软技术副总裁:工作流引擎厂商的生存之道 TIOBE 2014年2月编程语言排行榜:VB.NET首次进入TOP 10 斯诺登仅用“网络爬虫”软件获取机密文件 全球开发者:iOS、Android、WP哪个最赚钱? 直接调用函数和通过CLASS调用函数有什么区别吗? 可以在atl中使用mfc的消息机制吗? 救命!!!!!了各位(大GG,JJ,MM,DD)帮下忙 这是什么错误??? ★★请教AVI文件的API函数★★(关于将位图存成avi时写入的一点问题:急问) 请问各位大大北大青鸟APTECH认证培训有什么优缺点,对找工作有帮助吗? 我想通过点击SELECT里的内容之后打开一个新窗口,应该怎么写?里面有代码,怎么修改? 这有人用VB做嵌入式开发吗? 朋友,帮帮我,About python C 需要一个方法去判断?谁能说说? 请问各位大大北大青鸟APTECH认证培训有什么优缺点,对找工作有帮助吗? 在DELPHI 6中怎样在TADODatset中 锁定一条记录,使它不能移动? 请教:rmi中的server为什么不能注册? 要在机房度过24小时!问:怎么过?(null) 我要在 dos 下用语言描一正玄波形想请教除了描点还有什么好的办法 能不能用PHP在图片上写汉字?!?! 我用<a href="Javascript:History.go(-1);">back</a> 提示 :运行出现错误 ,history 未定义。怎么办? 老问题:为何连接sql anywhere数据库时出现unable to connect database server:unable to start specified database. 一个困扰了我很久的问题,关于对话框关闭的问题! 怎样得到Windows系统的临时路径. 愿用1000求解的,高深问题??? test 关于数据库设计中的权限管理问题? 过六一了,节日快乐!为庆祝塞内加尔胜利散200分 请问!如何对一文本文件一次一行的读出!!! 如何制作类似于marquee的效果 编译问题:为何第一次编译总是出现如下问题? 这段程序我是从书上抄下来的,请问这么会语法错误,100分 100分求如何响应鼠标离开的事件 Delphi的帮助用得我真难受:( 数据库软件在我的机上正常,但在其他机上不正常? 谁有地方下《Delphi高级开发指南》的电子书? 请介绍一下如何在vc++6.0中使用msxml 编译问题:为何第一次编译总会出现以下问题? 将分组字段作为输入参数的存储过程咋写? 怎么样对一个查询结果的某字段作汇总? 报表啊!!!报表。。。----:::::::::::::((((((((((((((((( delphi用BDE控件的SQL语句建立的dbf表,或者batchmove产生的dbf表,无法被其他软件识别,比如foxpro,excel.请问如何解决该问题,在线等待 这是什么原因产生地 DaNiao(鸿雁) 拜托了! 为什么我的Session不管用(解决问题一定给分) 初学编程!想做个系统来练练手,请高手指点我要怎么做才事半功倍?! 我是新来的,很菜的问题,希望大家帮忙!!!! 请推荐一本COM方面的书。 为什么在VC下有些变量名(类型是自己定义的类或结构)调试时候watch窗口里不能看到他的内容? 关于数据库的问题。 如何从imagelist控件中提出图片显示在image控件上 高分求DOS下串口传送文件的算法! 在vb6中我需要一个这样的按钮,该如何实现? 窗口对象的showModalDialog问题 高分求DOS下串口传送文件的算法! 我国内流河水文特征和成因 word分栏问题 请问如何把最后一页的文字集中于一个分栏 也就是一个分栏满了再开始下一个分栏 小苏打是什么样子的 用蓝色的眼镜看一张白纸上蓝色的字,会看得到吗?为什么? 溶液中含有两种溶质氯化钠和硫酸,它们的物质的量之比为3:1.用石墨做电极电解该溶液时,根据反应产物可明显分为三个阶段,则下列叙述不正确的是( ).A.阴极只析出氢气B.阳极先析出氯 小苏打是什么?生活中什么地方能用到? 怎么样区别话的红豆杉和榧木? 科学家从什么动物身上得到启示发明了什么 小苏打是什么啊?听说小苏打可以去黑头,对洗面奶可以收缩毛孔.请问小苏打到底是什么?超市都有卖,那么它在超市里面包装上叫什么啊?好象没有看到过.我问的是超市包装上打什么啊,没有看 求助使用ERDAS软件对太湖蓝藻遥感图像进行监督分类.最好能用专家分类器图像可以问我拿,或者告诉我方法.专家分类的规则我有,只是不知道怎么用. 科学家从哪些动物身上得到启示发明了什么 古代最爱菊的是哪位诗人写出诗句 企业污水处理站必须安装在线监测吗?污水排放量超过多少必须安装,相关文件? 污水处理中,水和泥的停留时间怎么计算?公式? 长江水系的大型水电站 我用ERDAS进行监督分类后,分类的结果只有一个波段,是何原因? 污水处理控制排泥量计算公式跪求! 长江水系与黄河水系大型水电站的作用 100字左右 不要太多 先说出大型水电站有哪些,再分别介绍各位GGMM们帮帮忙哈 kuai kuai 某市2006年的污水处理量为10万吨/天,2007年的污水处理量为34万吨/天,2007年平均每天的污水排放量是2006求该市2006年2007年平均每天的污水排放量各是多少万吨?(结果保留整数) 污水处理中如果UASB排泥时控制不当,造成污泥流失怎么办?如何恰当控制排泥量? L50*50*6角钢每米的重量怎么计算? 有谁知道长株潭近年来的污水排放量,或者知道 污水处理,污水排放量这样的会出现在什么期刊上, AO法污水处理A池和O池都排泥吗 汽车电路 如何在ERDAS中手工分类处理 word里面如何把两张图片叠在一起?(网界网论坛) 描写人物悲伤的句子200字 某市2007年的污水处理量为34万吨每天,平均每天的污水排放量约为59万吨.预计该市2010年平均每天的污水排放量比2007年平均每天的污水排放量增加百分之20,按国家要求“2010年城市的污水处理率 WORD两张图片同时叠加在一起也就是说在WORD之中,两张图片同时衬于文字下方时,如何使这两张图片互不影响,比如说同时使用电子公章和电子签名衬于文字下方,既要显示公章,又同时显示电子签 L63x6角钢每米重量怎么计算 某市去年的污水处理量为10吨一天,今年的污水处理量为34万吨每天,今年平均每天的污水排放量是去年平均每天污水排放量的1.05倍,设去年平均的污水排放量为x万吨每天.1,求今年平均每天的污 红豆杉的木材有什么作用 温度计的问题把温度计放在冰水混合物中读数为4摄氏度把温度计放在冰水混合物中读数为4摄氏度;把它插入标准大气压下的沸水中,读数为94°c;若用它来测量一杯水,读数为22摄氏度.问,实际温 小学语的扩词是什么意思 人们从生物身上得到启示,发明的成果很多,你知道哪些. 黄河水系大型水电站要著名一点的 扩词是什么意思 先装了erdas再装arcgis,不能打开arcgis该主键下只有ArcGIS License Manager和ERDAS License Manager中的一个,那么新建另一个,然后License Manager Tools进行设置,最后你就可以在一台机器同时启动这两个程序了怎 高中物理-如图所示为汽车蓄电池与车灯(电阻不变)、启动电动机组成的电路,蓄电池内阻为0.05Ω.如图所示为汽车蓄电池与车灯(电阻不变)、启动电动机组成的电路,蓄电池内阻为0.05Ω. 内流河的水文特征 arcgis、erdas imagine的异同对ARCGIS、ERDAS等软件的制图功能分别进行介绍,并尝试对比它们制图差异简要总结 如图所示为汽车蓄电池于车灯(电阻不变)、启动电动机组成的电路,蓄电池内阻r为0.05殴,电流表和电压...如图所示为汽车蓄电池于车灯(电阻不变)、启动电动机组成的电路,蓄电池内阻r为0 什么叫扩词 ArcGIS生成的图像不能在ERDAS里打开,怎么办?错误提示如下, 汽车蓄电池与车灯的问题.晚上未关车灯,造成蓄电池电量少,但能启动汽车,对车灯会不会烧坏?新车,蓄电池怎样来充电? 比较我国内流河与外流河的水文特征. 古代诗人喝酒写下的诗有哪些 1.那次会议是在去年冬天举行的The meeting ____ _____last winter.2.I won’t be mad at my best friend anymore.同义句I won’t ____ ____ ___my best friend anymore 扩词什么意思? 古代诗人非得饮酒才会做诗吗 上海今天晴天还是暴雨 关于我国外流河水文特征的叙述,正确的是:A.长江和黄河的含沙量均大,汛期均长 B.珠江比黄河流程短,但汛期却长 C.海河的水含沙量大,汛期长,冬季结冰 D.东北的辽河,是我国结冰期最长 有关Arcgis的问题?在运行这个软件时出现了Tool not license对话框,对话框中的内容是Unable to execute the selected tool.You do not have the necessary license to execute the selected tool. 明天是不是晴天? 我等不及了 科学家从动物身上发明了什么作文具体一点, 汽车蓄电池充电电流表不动怎么回事急!正负极接对了,电流表不动,新买的充电器,怎么电流表不动啊,是不是充不上电啊?谢谢各位 内流河与外流河的相同之处(水文特征),好的追加 word分栏 我分栏后除了第一排OK外 第二排第三排都少字呢 如下图所示 如果调整啊,我用标尺怎么都调不好~ 小苏打是什么东西啊,哪里有买的?小苏打是什么东西啊,哪有买》?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘