Android游戏开发一些心得(多个SurfaceView切换、View中长摁动作监听)

企鹅博客
企鹅博客
企鹅博客
25193
文章
0
评论
2019年9月30日23:18:33 评论 151 views
广告也精彩

最近正在开发一款Android的游戏,这是我首次在Android上进行游戏的开发,没有使用那些开源的游戏引擎,因为只是一个很小的游戏,如果以后需要进行一些比较复杂的游戏开发,那就需要用到游戏引擎了。国人开发的LGame这个引擎很不错,配有文档和很多实例,还专门针对AVG进行扩展,例子、文档齐全,推荐使用。

先来说说我的心得吧。

首先我遇到第一个问题是游戏场景的切换。Android开发中,最主要的类就是Activity了,它相当于一个窗口,所以最先想到的游戏场景切换方式是进行Activity的跳转,也就是把每个场景都做成一个Activity,然后用Intent来跳转。但是Activity毕竟是一个特殊的类,它在运行过程中很多东西不好控制,比如传参以及将某些数据进行回传。所以推荐的的是,每个场景都是一个SurfaceView,切换场景就只是切换SurfaceView就行了。曾经上网查询过如何切换SurfaceView,但是没有结果。本人C语言程序员出身,所以想到的切换无非就是进行一个回调函数而已,那就简单了,JAVA同样能实现回调函数,JAVA没有指针,所以改用接口来实现,下面是一个例子。

接口:

public Interface IActivity
{
 public Context getContext();
 public changeView(View view);
}

游戏Activity:
public class Game extends Activity implements IActivity
{
 @Override
     public void onCreate(Bundle savedInstanceState)
 {
   super.onCreate(savedInstanceState);

  //创建游戏SurfaceView
  GameView gameView = new GameView(this);
 }
 
 @Override
 public Context getContext()
 {
  return this.getApplicationContext();
 }

 @Override
 public changeView(View view)
 {
  setContentView(view); //注意1
 }
}

游戏SurfaceView:

public class GameView extends SurfaceView implements SurfaceHolder.Callback
{
 private IActivity iActivity;
 public GameView (IActivity iActivity)
 {
  super(iActivity.getContext());
  this. iActivity = iActivity;
 }

 //切换场景
 public void changeView()
 {
  iActivity.changeView(this);
 }
}

这下明白了吧,那个setContentView(view)(注意1那个地方)估计很多人会眼熟,是的,他都会出现在工程创建的那个Activity里,形式为setContentView(R.layout,main),setContentView这个方法就是Activity里,用于让窗口显示什么内容的方法,R.layout,main是一个布局XML,我们把它替换为我们自己的View就行了(View是SurfaceView的父类)。

企鹅博客
  • 本文由 发表于 2019年9月30日23:18:33
  • 转载请务必保留本文链接:https://www.qieseo.com/154273.html
Android短信应用——短信信息实时获取 Linux编程

Android短信应用——短信信息实时获取

我们知道,只需通过代码就可以读到收件箱中的短信,发件箱中的短信;但是却没办法在短信发来的瞬间获取;如果我们在短信发来的一瞬间能得到相应的信息内容,那么我们就可以依次来展开很多应用了——也就是通过短信去...
LRU缓存设计 Linux编程

LRU缓存设计

缓存的数据结构采用哈希表,key到value的映射。 网上有些资料采用记录数据的使用时刻 实现LRU策略,此处采用双向链表 实现LRU策略。LRU Least Recently Used,MRUMos...
R 语言 简单介绍 Linux编程

R 语言 简单介绍

一.统计分析软件说明  统计分析软件有:SPSS, SAS、R语言,Matlab,S-PLUS,S-Miner。 SPSS: 最简单的,都是菜单操作,不过不利于二次程序开发。 SAS: 需要...

发表评论