📄 mylayermanager.java
字号:
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class MyLayerManager extends GameCanvas implements Runnable {
private Display dis;
private DemoTest dg;
private Sprite s,s1,s2;
private int x,y,h = getHeight(),w = getWidth();
private long delay = 20;
private boolean guan,bian = false;
private LayerManager lm = null;
private int i = -1;
public MyLayerManager(DemoTest dg) {
super(true);
this.dg = dg;
dis = Display.getDisplay(dg);
x = w/2;
y = h/2;
lm = new LayerManager();
dis.setCurrent(this);
start();
try {
Image image = Image.createImage("/herp_1.png");
s = new Sprite(image,24,29);
Image image2 = Image.createImage("/hero_tom.png");
s1 = new Sprite(image2,68,70);
s.defineReferencePixel(12,15);
s2.defineReferencePixel(34,35);
lm.append(s);
lm.append(s1);
s2 = s;
s1.setVisible(false);
}catch(Exception e){
}
}
public void start(){
guan = true;
new Thread(this).start();
}
public void stop(){
guan = false;
lm = null;
}
public void run() {
Graphics g = getGraphics();
while(guan){
input();
drswScreen(g);
try {
Thread.sleep(delay);
}catch(Exception e){
}
}
}
public void input(){
int k = getKeyStates();
if ((k & UP_PRESSED) !=0){
if (s2.equals(s) ){
if (i != UP_PRESSED){
i = UP_PRESSED;
s.setFrameSequence(new int[] {0,1,2});
}else{
y = Math.max(0,y-1);
s.nextFrame();
s.move(x,y-=5);
}
}else if(s2.equals(s1)){
if (i != UP_PRESSED){
i = UP_PRESSED;
s.setFrameSequence(new int[] {4,5,6,7});
}else{
y = Math.max(0,y-1);
s.nextFrame();
s.move(x,y-=5);
}
}
}
if ((k & DOWN_PRESSED) !=0){
if (s2.equals(s)){
if (i != DOWN_PRESSED){
i = DOWN_PRESSED;
s.setFrameSequence(new int[] {6,7,8});
}else{
y = Math.min(h-30,y+1);
s.nextFrame();
s.move(x,y+=5);
}
}else if(s2.equals(s1)){
if (i != DOWN_PRESSED){
i = DOWN_PRESSED;
s.setFrameSequence(new int[] {0,1,2,3});
}else{
y = Math.max(0,y-1);
s.nextFrame();
s.move(x,y-=5);
}
}
}
if ((k & LEFT_PRESSED) !=0){
if (s2.equals(s)){
if (i != LEFT_PRESSED){
i = LEFT_PRESSED;
s.setFrameSequence(new int[] {9,10,11});
}else{
x = Math.max(0,x-1);
s.nextFrame();
s.move(x-=5,y);
}
}else if(s2.equals(s1)){
if (i != LEFT_PRESSED){
i = LEFT_PRESSED;
s.setFrameSequence(new int[] {8,9,10,11});
}else{
y = Math.max(0,y-1);
s.nextFrame();
s.move(x,y-=5);
}
}
}
if ((k & RIGHT_PRESSED) !=0){
if (s2.equals(s)){
if (i != RIGHT_PRESSED){
i = RIGHT_PRESSED;
s.setFrameSequence(new int[] {3,4,5});
}else{
x = Math.min(w-25,x+1);
s.nextFrame();
s.move(x+=5,y);
}
}else if (s2.equals(s1)){
if (i != RIGHT_PRESSED){
i = RIGHT_PRESSED;
s.setFrameSequence(new int[] {12,13,14,15});
}else{
y = Math.max(0,y-1);
s.nextFrame();
s.move(x,y-=5);
}
}
}
if ((k & FIRE_PRESSED) !=0){
if (s2.equals(s)){
s.setVisible(false);
s1.setVisible(true);
s2 = s1;
}else{
s.setVisible(true);
s1.setVisible(false);
s2 = s;
}
}
}
public void drswScreen(Graphics g){
g.setColor(0,0,0);
g.fillRect(0,0,w,h);
s2.setRefPixelPosition(x,y);
lm.paint(g,10,100);
lm.setViewWindow(0,0,200,200);
flushGraphics();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -