如何用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;
}
}
喜欢开放游戏的朋友加我好友!
分享到:
相关推荐
UNITY开发的FPS游戏,包括小地图等,比较全面的学习demo
FPS游戏引擎的设计与实现
2-117 第一人称射击游戏开发模板FPS2-117 第一人称射击游戏开发模板FPS2-117 第一人称射击游戏开发模板FPS2-117 第一人称射击游戏开发模板FPS2-117 第一人称射击游戏开发模板FPS2-117 第一人称射击游戏开发模板FPS2-...
android_fps
unity3d开发射击类游戏的绝好教程,适合各类人学习。
Unity3d 中文 FPS游戏教程Unity3d 中文 FPS游戏教程Unity3d 中文 FPS游戏教程
Unity和C#-游戏开发-FPS游戏+源代码工程
【CE教程二】利用CE实现FPS类游戏无后坐【CE教程二】利用CE实现FPS类游戏无后坐
Unity和C#-游戏开发-多角色fps射击游戏+源代码工程
unity次世代FPS射击游戏源码Next-Gen FPS,Unity精品FPS游戏源码 Unity精品小游戏源码 , Unity完整项目源码 是Unitypackage包 , 新建空项目直接导入到项目里面就可以运行了,无需其他操作。 适合二次开发和学习使用,...
Vaughan Young 开发的一个FPS 游戏引擎进行了详细剖析主要包括了引 擎的程序框架及其控制模块脚本系统模块渲染系统模块音频系统模 块网络通信模块等然后根据实际研究需要对其进行了扩充即在该引 擎的基础上添加了GUI...
基于YOLOv5开发的FPS类游戏自动瞄准系统源码+使用说明+模型.zip基于YOLOv5开发的FPS类游戏自动瞄准系统源码+使用说明+模型.zip基于YOLOv5开发的FPS类游戏自动瞄准系统源码+使用说明+模型.zip基于YOLOv5开发的FPS类...
游戏fps优化器游戏fps优化器游戏fps优化器游戏fps优化器游戏fps优化器游戏fps优化器游戏fps优化器游戏fps优化器
这是我在网上找到的一个很不错的fps引擎教程, 里面讲了关于制作fps所需要的东西. 这教程是基于directX, 但里面有很多有实用的东西, 可用于其他游戏开发. 这个文档是我免费下载来的. 所以不用积分.=)
基于Qt和OpenGL开发的一款FPS游戏+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于Qt和OpenGL开发的一款FPS游戏+源码,适合毕业设计、课程设计、项目...
U3D FPS游戏制作教程 U3D FPS游戏制作教程U3D FPS游戏制作教程U3D FPS游戏制作教程U3D FPS游戏制作教程U3D FPS游戏制作教程U3D FPS游戏制作教程U3D FPS游戏制作教程U3D FPS游戏制作教程
FPS游戏辅助制作经典教程
unity5 FPS射击游戏FPSE源码0.95f Unity精品小游戏源码 , Unity完整项目源码 是Unitypackage包 , 新建空项目直接导入到项目里面就可以运行了,无需其他操作。 适合二次开发和学习使用,都是经典游戏,需要其他游戏源码...
FPS 的ESP绘图绘制源码,适用任何FPS游戏。此档案为CSGO 源码,可以修改的sln文件,开发环境为C++。主要有方框+射线的ESP代码。
Python基于YOLOv5目标检测算法开发的FPS射击类游戏辅助瞄准系统源码+项目说明.zip本资源中的源码都是经过本地编译过可运行的,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有...