J2ME游戏APIの游戏精灵Sprite

在J2ME手机游戏开发中,MIDP2.0以上版本提供了一个有助于游戏制作的类,该类称为游戏精灵Sprite,在J2ME中使用游戏精灵Sprite可以简单的管理角色动画使用的frame图像。

以下我将归纳一下游戏精灵Sprite的一些核心内容。

一、图像分割

在使用Sprite类时候,只需要准备一张图像就可以构造出生动的动画效果,将要制作的动画效果使用的图像按照顺序排列后制作成一张图片,在Sprite构造方法中设定图片源跟图片的分割frame数,Sprite就能自动根据frame数对图片进行分割。

Sprite常用构造方法为:public Sprite(Image i, int frameWidth, int frameHeight)。

需要注意的是,组成图片的各个帧宽度必须相同,且像素数需要跟图片对应,否则将出现IO异常。

二、图片frame设置

经过Sprite的分割后,图片将被分成不同的独立小图片,例如一副图片由4帧图片组成,则图片的index将从0-3个不同帧对象。利用Sprite类的setFrame(int index)方法可以在游戏过程中任意指定显示哪一个frame。

相应其他方法还有nextFrame()和prevFrame()取得前后帧图像等方法。

三、精灵定位与描绘

Sprite类利用setPosition方法来指定精灵描绘的坐标点(固定点是图片的左上顶点坐标),从而定位了精灵在屏幕中的位置;在描绘精灵时,只需要把Graphics对象传递到Sprite中的paint方法中的参数就能将精灵显示。

例如:精灵对象plane

设置位置:plane.setPosition(getWidth()/2, getHeight()/2);

显示精灵:plane.paint(g);

四、精灵转动跟翻转

在游戏中经常需要使游戏对象有转动跟翻转的功能使得游戏更加生动逼真,在Sprite类中提供了方法void setTransform(int transform)来设定精灵的转动跟翻转效果,利用它我们就可以容易的让图片动起来。

参数transform预先设定了八种常量定义,这八种常量对应的效果如下:

1、TRANS_NONE: 没有进行转动和翻转;

2、TRANS_ROT90: 90度转动;

3、TRANS_ROT180: 180度转动;

4、TRANS_ROT270: 270度转动;

5、TRANS_MIRROR: 左右翻转;

6、TRANS_MIRROR_ROT90: 左右翻转后90度转动;

7、TRANS_MIRROR_ROT180: 左右翻转后180度转动;

8、TRANS_MIRROR_ROT270: 左右翻转后270度转动。

如设定精灵plane转动90度如下:

plane.setTransform(Sprite.TRANS_ROT90);

五、精灵参照点和目标定位

在Sprite中还有两个重要的方法,分别为defineReferencePixel(int x,int y)和setRefPixelPosition(int y,int y),用于设定精灵的参照点和对精灵参照点的目标定位。

如设定精灵plane的参照点跟定位点如下:

plane.defineReferencePixel(0,12);

plane.setRefPixelPosition(getWidth()/2,getHeight()/2);

六、精灵碰撞检测

在MIDP1.0中对游戏角色碰撞是通过计算物体的大小以及坐标来判断的,Sprite中提供了专门的碰撞判断方法,通过该方法可以容易的对角色是否接触进行判断。

碰撞判断常用的方法为collidesWith(Sprite sprite,boolean pixelLebel);

第一个参数为与自身可能发生碰撞的精灵对象;

第二个参数为是否像素级别碰撞检测,如果为false,则当精灵图片的边框接触时候将为碰撞发生;如果为true,则需要在当图片中真实的像素内容接触时碰撞才发生,通常设定为true使得游戏更加逼真。

时间: 2024-09-19 23:58:17

J2ME游戏APIの游戏精灵Sprite的相关文章

J2ME游戏APIの构建地图TiledLayer

在J2ME中游戏精灵Sprite是Layer的子类,而MIDP2.0中关于Layer图层接口还有一个重要的类TiledLayer,该类的作用是用于构建游戏地图.游戏中除了精灵的活动之外,还需要有背景地图,使得精灵在地图上走动形成逼真的环境效果,因此MIDP2.0提供我们用于构建游戏地图的TiledLayer类,我们能使用TiledLayer容易的构建形象美观的各种地图背景.本文叙述有关TiledLayer的重要方法以及如果使用TiledLayer构造出游戏地图. 1.TiledLayer是一个将

J2ME 2D小游戏入门之旅(五) 实现爆炸效果、并加入道具导弹

五.实现爆炸效果.并加入道具导弹 大多数游戏都有着丰富的效果类,在精灵移动类游戏中曾一度以此为一个重要的卖点,.光光是一些丰富的特效是不能够产生一个好的游戏的,但是一个好的游戏是万万不能缺少好的效果的. 很多人认为游戏的效果层有时和跟游戏逻辑本身并没有太大的关系,往往就是在最终屏幕上再画上一层效果层.但是游戏逻辑和效果层之间的通信是很重要的.这种通信往往体现在延时与等待上.比如飞机爆炸时,不接受任何用户输入,并且爆炸效果还要继续跟随飞机坠落,甚至爆炸的范围会影响周围的物体,要等待爆炸结果结束了才

J2ME 潜艇大战游戏设计与实现Demo

设计  J2ME 潜艇大战游戏设计与实现Demo 黄叶 (www.hyweb.net) 摘要 本文给出了一个飞机射击类(潜艇)游戏的设计过程以及相应的流程图,并提供了Demo版源代码下载地址,游戏在sun wtk v2.2 下调试通过. 声明 本游戏所用的资源大多不属于作者,代码仅供非商业用途的学习参考. 以下为游戏的几张截图 设计 1 游戏操作流程: 游戏的初始画面是一个implusive的List列表格式,选择new game以后就可以启动游戏,游戏是以全屏方式开启,但仍有用于暂停/开始和退

J2ME潜艇大战游戏设计与实现

设计   摘要     本文给出了一个飞机射击类(潜艇)游戏的设计过程以及相应的流程图,并提供了Demo版源代码下载地址,游戏在sun wtk v2.2 下调试通过. 声明:本游戏所用的资源大多不属于作者,代码仅供非商业用途的学习参考. 以下为游戏的几张截图 游戏设计 1 游戏操作流程:     游戏的初始画面是一个implusive的List列表格式,选择new game以后就可以启动游戏,游戏是以全屏方式开启,但仍有用于暂停/开始和退出的命令响应功能键.在游戏当中启动暂停,海水和海洋生物仍将

J2ME推箱子游戏

问题描述 我有一个想法想做一个推箱子游戏.游戏内容与现存的不一样,有没有人可以帮我做成这个游戏啊~~.我想做一个自动生成地图的游戏~~.我对游戏分析还可以--,就是对编程实在是不在行.希望高手们可以帮个忙--有意者请给我发邮件dingmingquan521@hotmail.com 解决方案 解决方案二: 解决方案三:这位大大的意识我不太懂!1:自动生成地图是随机的吗?2:还是写好很多地图后自动抽取一个地图来进行游戏?如果是1的话难度就高很多了因为自动生成地图来推箱子逻辑部分就...一个不小心生成

360游戏浏览器游戏大全

  运行360游戏浏览器,首先打开的是游戏大全页面,此处通过七大版块可以帮助您快速找到想要玩的游戏. 分别为:最近玩过的游戏.热门游戏.拼音字母检索游戏.游戏类型分类.一周游戏排行榜.新服推荐.新游上线. 当切换到其他页面,想重新寻找游戏,只要点击顶部按钮"游戏大全"即可重新回到该页面

安卓游戏-安卓开发用sqlite存的游戏数据,游戏卸载后还在吗?

问题描述 安卓开发用sqlite存的游戏数据,游戏卸载后还在吗? 如题,安卓游戏用sqlite存的游戏数据,游戏卸载后sqlite存的数据信息还在吗? 解决方案 android数据存储存放的地方分两种,一种是private,会随着程序的卸载而丢失.另一种是public,共享内容是不会被丢失.而游戏数据应该会保存的服务器端,重新安装的时候会重新保存一遍.当然做法不一样,结果就不一样. 解决方案二: 看你的文件在哪了,如果是随着安装包存在的,就会清理掉,如果是自己拷贝到其他地方的,就没事 解决方案三

(NO.00005)iOS实现炸弹人游戏(八):游戏主角(一)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 最近一直在做另一个RPG游戏,所以本系列迟迟没有更新,上一篇博文的地址在: (NO.00005)iOS实现炸弹人游戏(七):游戏数据的序列化表示 本篇接着上篇介绍炸弹人游戏中的游戏主角的基本构成,游戏主角自然是我们的炸弹人了. 因为主角会在游戏场景中各个方向行走,所以我们需要先准备其对应的图片资源: 如各位所见除了普通的移动动作,我还选择了主角被人道毁灭和无敌

游戏云游戏传统部署架构方案

传统IDC机房部署架构平移上云方案,其优势为结构相对简单,符合大多数开发人员的经验,无需对原有架构进行过多修改,即可快速迁移上云.其缺点为各功能耦合性高,不利于弹性扩展,未充分应用云计算优势,后期维护工作量较大. 游戏传统部署架构解读 安全防护 GB级别的防DDoS清洗服务,用户可根据需求开启7层清洗服务用于防御CC攻击.还可选择性开启免费的入侵防御及网站应用安全监测等服务. CPU.内存.网络流量等十种类型实时的监控服务,并提供多种报警方式. 登录服务器 ECS)上.传统部署架构,一般登录服务