j2me精灵动画实现经典案例分析

本文介绍了一种基于J2ME平台实现精灵动画的方法。通过调整角度和位置来改变动画的方向,具体包括向上、向下、向左和向右四个方向,并提供了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

===================j2me精灵动画实现经典案例分析==========

今天北京晴和万里,心情也特别的开朗,现在在这边实训的学员比较听话,也比较爱学习,总体对人的感觉特别的亲,现将前日所写的j2me灵动画实现与大家分享,希望对大家有所帮助.

j2me动画游戏总体感觉也是比较容易理解,只要你能体现到角度是怎么变化的那么精灵动画实现对你来说理解应该不是问题。

呵呵。。说了那么多看我怎么实现精灵动画



//本文章是自己撰写请不要随意转载,否则要付法律责任
package com.redarmy.canvas01;

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

public class ExCanvas extends Canvas {

public int px = 60, py = 80;// 起始坐标
public int arc1 = 30, arc2 = 280;// 起始角度

// 小精灵方向定义
public static final int UP = 1;
public static final int DOWN = 2;
public static final int LEFT = 3;
public static final int RIGHT = 4;

// 初始化方向
public int DIR = 4;

protected void paint(Graphics arg0) {
arg0.setColor(0, 255, 0);
arg0.fillRect(0, 0, this.getWidth(), this.getHeight());
arg0.setColor(255, 0, 0);
switch (DIR) {
case UP:
arg0.fillArc(px, py, 50, 50, arc1 + 90, arc2); //向上转度90°
break;
case DOWN:
arg0.fillArc(px, py, 50, 50, arc1 + 270, arc2);//向下转度270°
break;
case LEFT:
arg0.fillArc(px, py, 50, 50, arc1 + 180, arc2);//向右转度180°
break;
case RIGHT:
arg0.fillArc(px, py, 50, 50, arc1, arc2);//初始化方向0°
break;
default:
break;
}
}

//按键处理
protected void keyPressed(int keyCode) {
System.out.println(keyCode);
arc1 = 30; arc2 = 280; //当按键时角度的变化
//右
if (keyCode==-4||keyCode==54) {
DIR=RIGHT;
px+=8;
if(px>=this.getWidth()){
px=0;
}
}
//下
if (keyCode==-2||keyCode==56) {
DIR=DOWN;
py+=8;
if(py>=this.getHeight()){
py=0;
}
}
//上
if (keyCode==-1||keyCode==50) {
DIR=UP;
py-=8;
if(py<=0){
py=this.getHeight();
}
}
//左
if (keyCode==-3||keyCode==52) {
DIR=LEFT;
px-=8;
if(px<=0){
px=this.getWidth();
}
}
this.repaint();
}

protected void keyReleased(int keyCode) {
arc1 = 50; arc2 = 240; //当释放键是角度的变化
this.repaint();
}

protected void keyRepeated(int keyCode) {

}

}
//


//测试类
package com.redarmy.canvas01;

import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class AppMain extends MIDlet{

public ExCanvas ecs;
public AppMain(){
ecs = new ExCanvas();
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}

protected void pauseApp() {

}

protected void startApp() throws MIDletStateChangeException {
Display.getDisplay(this).setCurrent(ecs);

}

}



以上文章都有本人自己撰写,请不要随意转载,否则要付法律责任。
如有疑问请发送到邮箱:RedArmy.Chen@gmail.com我会尽快给您答复
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值