android 游戏开发框架

Activity类:必要属性 

各种surfaceView

 

各种动画线程

 

boolean isSound    //是否播放声音标志

 

各种声音    (mediaPlayer或者soundpool)

 

handler   //根据收到的mssage切换surfaceView或者更新控件

 

 

Entity类: 必要的属性(记录位置,宽高等)  

 

doDraw(Cancas cancas){}  //绘制自己

 

touchEvent(int x, int y){}   //出发事件

contains(int x, int y)                //碰撞检测

 

nextFrame()                            //切换动画的下一帧,有这个方法后在换帧线程中只要不断的调用   这个方法就可以了。

 

SurfaceView类:必要属性   1:activity   2:换帧线程   3:Entitys

public 构造函数(Activity activity)  //用来控制声音或者通过handler向activity发送message

doDraw(Canvas canvas)       //调用entity的doDraw

 

touchEvent(MotionEvent event)                         //调用Entity的touchEnvent

 

public void surfaceCreated(SurfaceHolder holder)  // 启动换帧线程

 

     public void surfaceDestroyed(SurfaceHolder holder)// 停止换帧线程

 

物理引擎线程类: 构造函数将要控制的对象传进来(一般是entity)  注意:"一直"在调整entity的状态才需                                       要物理引擎

 

属性:int sleepSpan 休眠时间

 

 boolean flag 循环标志

 

                 计算下一状态的信息,并改变控制对象的属性

 

换帧线程类: 构造函数传入SurfaceView类

 

属性:int sleepSpan                     //休眠时间

 

boolean flag                      //循环标志

 

        SurfaceVie  surfaceView   //调用其onDraw()方法

 

SurfaceHolder surfaceHolder    //用与得到Canvas

 

public 构造函数(surfaceView, surfaceHolder)

 

          主要调用SurfaceView的doDraw方法,注意同步 surfaceHolder

 

动画线程类:若播放完动画切换surfaceView则              (放完动画用handler向activity发送消息)

 

                     int sleepSpan = 200;//睡眠的毫秒数

 

                 private boolean flag = true;

 

                 int status = 0;

 

                 Activity activity;           //activity的引用

 

                 public 构造函数(Activity activity){

 

                      this.activity =activity;

 

                     }

 

                  public void setFlag(boolean flag){

 

                     this.flag = flag;

 

                      }

 

          public void run() {//重写的run方法

 

          while(flag){

 

  switch(status){ case 0: case 1:.........................}

 

KeyThread(键盘监听线程):

 

在activity的onKeyUp(),onKeyDown()函数中只设置了一个键盘状态位action用于记录什么键被按下,在

 

keyThread中获取action并作出响应。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值