📄 imagescrolltest.java
字号:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.*;
public class ImageScrollTest extends MIDlet{
Display display;
MyCanvas myCanvas;
public ImageScrollTest(){
display = Display.getDisplay(this);
myCanvas = new MyCanvas();
}
public void startApp(){
display.setCurrent(myCanvas);
}
public void pauseApp(){
}
public void destroyApp(boolean unconditional){
}
class MyCanvas extends Canvas implements CommandListener{
Command exitCmd;
Image offScreen;
Image spriteImage;
Image background;
int x, y;
int imageX, imageY;
int imageWidth, imageHeight;
public MyCanvas(){
if(!isDoubleBuffered()){
offScreen = Image.createImage(getWidth(), getHeight());
}
try{
spriteImage = Image.createImage("/sprite.png");
background = Image.createImage("/background.png");
}
catch(Exception ex){}
imageWidth = background.getWidth();
imageHeight = background.getHeight();
exitCmd = new Command("退出", Command.EXIT, 1);
addCommand(exitCmd);
setCommandListener(this);
}
public void paint(Graphics g){
Graphics old = g;
if(offScreen != null){
g = offScreen.getGraphics();
}
g.setColor(0xFFFFFF);
g.fillRect(0, 0, getWidth(), getHeight());
g.drawImage(background, imageX, imageY, Graphics.LEFT|Graphics.TOP);
g.drawImage(background, imageX, imageY-imageHeight, Graphics.LEFT|Graphics.TOP);
g.drawImage(background, imageX-imageWidth, imageY, Graphics.LEFT|Graphics.TOP);
g.drawImage(background, imageX-imageWidth, imageY-imageHeight, Graphics.LEFT|Graphics.TOP);
g.drawImage(spriteImage,
(getWidth()-spriteImage.getWidth())/2,
(getHeight()-spriteImage.getHeight())/2,
Graphics.LEFT|Graphics.TOP);
g.setColor(0);
g.drawString("当前位置:"+x+","+y,
10,
getHeight() - 20,
Graphics.LEFT|Graphics.TOP);
if(g != old){
old.drawImage(offScreen, 0, 0, Graphics.LEFT|Graphics.TOP);
}
}
public void keyPressed(int keyCode){
int gameAction = getGameAction(keyCode);
switch(gameAction){
case Canvas.UP:
y-=5;
imageY+=5;
if(imageY>=getHeight()) imageY -= getHeight();
repaint();
break;
case Canvas.DOWN:
y+=5;
imageY-=5;
if(imageY<=0) imageY += getHeight();
repaint();
break;
case Canvas.LEFT:
x-=5;
imageX+=5;
if(imageX>=getWidth()) imageX -= getWidth();
repaint();
break;
case Canvas.RIGHT:
x+=5;
imageX-=5;
if(imageX<=0) imageX += getWidth();
repaint();
break;
}
}
public void keyReleased(int keyCode){
}
public void keyRepeated(int keyCode){
}
public void commandAction(Command c, Displayable d){
if(c == exitCmd){
destroyApp(true);
notifyDestroyed();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -