博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
雷电android game学习笔记(1)
阅读量:5833 次
发布时间:2019-06-18

本文共 1747 字,大约阅读时间需要 5 分钟。

一、 基本框架

图层对象(layer Object):定义图层的宽、高、位置、图层的移动和绘制的方法

视图对象:绘制图层对象,响应键盘事件,处理视图线程

Activity:控制游戏流程,如启动游戏、暂停游戏、停止游戏

 

二、 移植Java ME的游戏APIAndroid

使用Java ME中MIDP2.0的游戏API中的layer, Sprite, LayerManaer和TiledLayer类

(一)MIDP(Mobile Information Device Profile)的介绍

特点:

   游戏场景看成一个整体,由各种图层组成

   图层可以相互运动

   可以简单的检测图层之间的碰撞和交互

   在底层的图像类(Graphics和Image等)之上,高层的Game API能联结各种图像的简单操作

包:Javax.microedition.lcdui.game

┣ GameCanvas

Layer

     ┣ LayerManager

     ┣ Sprite

     └ TiledLayer

 

ª       GameCanvas类:游戏的容器

          继承GameCanvas,构造方法传入一个boolean值,决定是否抑制按键事件(大部分情况下)

          获取Graphics对象绘制屏幕:GetGraphics()

          绘制缓冲屏幕:flushGraphics()

          获取键盘状态:getKeyStates()

   Layer类:抽象类,代表游戏中一个可视化元素及其相关属性,如位置、大小、可视与否。。。

   LayerManager类:用于管理游戏中的层次,通过分层次的自动绘制实现期望的图像显示效果,容许开发者设置一个可视窗口

   Sprite类: 表示一帧或多帧的连续图像(由一个Image对象提供,大小相同),通过控制帧的显示实现动画效果,提供旋转模式和碰撞检测方法

   TiledLayer类:显示游戏地图,通过“拼图”的过程,创建大幅图像,如划分为多个cell,分别显示一个Image对象提供的一组图元的某一Tile

 

(二)MIDP移植到android

  1. 图层类(Layer class)的移植

1)      MIDP2.0源码中的Game包的layer, Sprite, LayerManaer和TiledLayer类

2)      将Layer类中的paint方法参数Graphics中的Canvas

3)      在Layer类中加一个绘制图片的方法drawBitmap()

  1. 动画图层类(Sprite class)的移植

该类可以显示几帧动画中的其中一帧,该提供了图片转换盒图层碰撞检测的方法

1)      将Sprite类中的Graphics和Images类改为Canvas和Bitmap类

2)      修改Paint方法,将g.drawRegion方法替换为父类Layer方法中的drawBitmap方法

3)      将doPixelCollision( )中的Bitmap1.getRGB( ), BitMap2.getRGB( )方法注释掉

  1. TiledLayer类的移植

按行列单元格的方式来显示图片

1)      将TiledLayer类中的Graphics和Images类改为Canvas和Bitmaplei

2)      修改Paint方法,将g.drawRegion方法替换为父类Layer方法中的drawBitmap方法

  1. LayerManager类的移植

管理图层,能将多个Layer对象添加,机制维护和显示

1)      将TiledLayer类中的Graphics和Images类改为Canvas和Bitmaplei

2)      修改Paint方法,注释以下代码

Int clipX=g.getClipX( );

Int clipY=g.getClipY( );

Int clipW=g.getClipW( );

Int clipH=g.getClipH( );

g.setClip(ClipX,ClipY,ClipW,ClipH);

3)      在for中添加代码如下

c.restore( );

c.translate(-x+viewX, -y+viewY);

转载于:https://www.cnblogs.com/JoannaQ/archive/2012/08/21/2648691.html

你可能感兴趣的文章
修改故障转移群集心跳时间
查看>>
[轉]redis;mongodb;memcache三者的性能比較
查看>>
微软职位内部推荐-Sr DEV
查看>>
让你的WPF程序在Win7下呈现Win8风格主题
查看>>
802.11 学习笔记
查看>>
Leetcode-Database-176-Second Highest Salary-Easy(转)
查看>>
构建Docker Compose服务堆栈
查看>>
最小角回归 LARS算法包的用法以及模型参数的选择(R语言 )
查看>>
Hadoop生态圈-Kafka常用命令总结
查看>>
如何基于Redis Replication设计并实现Redis-replicator?
查看>>
浮点数内存如何存储的
查看>>
贪吃蛇
查看>>
EventSystem
查看>>
用WINSOCK API实现同步非阻塞方式的网络通讯
查看>>
玩一玩博客,嘿嘿
查看>>
Ubuntu设置python3为默认版本
查看>>
JsonCpp 的使用
查看>>
问题账户需求分析
查看>>
JavaSE-代码块
查看>>
爬取所有校园新闻
查看>>