第一范文网 - 专业文章范例文档资料分享平台

NEC手机JAVA中级讲座-第八讲 NEC扩展

来源:用户分享 时间:2025/5/19 14:11:59 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

2.2. Sprite

Sprite是指具有描画位置与大小的对象。Sprite的特征有以下三点。 1.把SpriteImage分配、移动到任意位置 2.设定SpriteImage中的优先顺序 3.进行SpriteImage同类的碰撞判定

比如,在Canvas类中,根据描画顺序对画面进行描画,其中重复的部分,需要对描画的处理顺序进行正确的编程,很繁琐。在这种情况下,如果利用Sprite优先顺序,就不用担心描画顺序,很方便。而且,Sprite的碰撞判定,对于经常发生碰撞判定处理的shooting game等应用程序,非常有效。

为了利用Sprite,在NEC扩展API中准备了以下两类。 ? Sprite ? SpriteMap

Sprite类中有以下方法。 方法 boolean isVisible() Void setImage(javax.microedition.lcdui.Image image) void setLocation(int x, int y) void setVisible(boolean b)

SpriteMap 类使用Sprite对象,因此能够进行Sprite对象的同类碰撞判定和设定Sprite对象的描画优先顺序。SpriteMap中有以下方法。

int getCollisionFlag(int index) int getCount() Sprite getSprite(int index) 取得由自变量index指定的Sprite碰撞判定flag。 返回保持的Sprite数。 返回由自变量index指定的索引Sprite。 设定Sprite的可视/非可视信息。 设定Sprite查看位置。 作用 取得Sprite的可视/非可视信息。 设定Sprite使用画面。 Sprite[] getSprites() boolean isCollision(int index1, int index2) void setCollisionAll() void setCollisionOf(int index) void setPriority(int index, int prior)

返回Sprite排列。 取得由自变量index1和index2指定的Sprite碰撞判定结果。 进行全体Sprite的相互碰撞判定。 进行由自变量index指定的Sprite碰撞判定。 设定Sprite优先顺序。 Sprite查看利用上述NxGraphics类的方法drawSpriteSet。利用drawSpriteSet方法,能够在画面上查看在SpriteSet注册的Sprite。但是,visible被false指定的Sprite却不能在画面上查看。

ng.drawSpriteSet(spriteSet);

下面是Sprite中两球发生碰撞的演示程序的source code。 该演示中,使球运动发生碰撞,则相撞的球就会消失。 import javax.microedition.lcdui.Display; import javax.microedition.midlet.MIDlet;

import javax.microedition.midlet.MIDletStateChangeException; /**

* 进行Sprite test的演示程序 */

public class SpriteSample extends MIDlet {

Display display; SpriteCanvas canvas; /**

* 构造函数 */

public SpriteSample(){ }

display = Display.getDisplay(this); canvas = new SpriteCanvas();

}

/**

* 打开程序 */

protected void startApp() throws MIDletStateChangeException { }

protected void pauseApp() { }

protected void destroyApp(boolean arg0) throws MIDletStateChangeException { }

display.setCurrent(canvas);

import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.Image;

import com.nec.graphics.NxGraphics; import com.nec.graphics.Sprite; import com.nec.graphics.SpriteSet; /**

* Sprite test用canvas * 球发生碰撞后消失 */

public class SpriteCanvas extends Canvas{

private final String IMAGE_PATH = \

private Image img = null; private Sprite ball1 = null; private Sprite ball2 = null; private int ball2X = 100; private int ball2Y = 100; private SpriteSet spriteSet;

/**

* 构造函数 */

public SpriteCanvas(){ } /**

* 描画方法 */

protected void paint(Graphics g) {

//清除画面 //读取画面 try { }

//Sprite的初始化

spriteSet = new SpriteSet(2); ball1 = spriteSet.getSprite(0); ball2 = spriteSet.getSprite(1);

if(img != null){ }

//球1的初始化 ball1.setImage(img); ball1.setLocation(0,0); ball1.setVisible(true);

//球2的初始化 ball2.setImage(img);

ball2.setLocation(ball2X,ball2Y); ball2.setVisible(true);

img = Image.createImage(IMAGE_PATH); e.printStackTrace(); } catch (Exception e) {

搜索更多关于: NEC手机JAVA中级讲座-第八讲 NEC扩展 的文档
NEC手机JAVA中级讲座-第八讲 NEC扩展.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4exc81bkfq6d7jn4l21l_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top