📄 mycanvas.java
字号:
import javax.microedition.lcdui.*;
public class myCanvas extends Canvas implements Runnable {
public Image player,bk;
public Image offScreen;
public Graphics offg;
public int mx,my,px,py,nowFrame,dir,fx,fy;
public myCanvas(){
mx=this.getWidth();
my=this.getHeight();
px=mx/2-11;py=my/2-12;
fx=fy=0;
nowFrame=7;
dir=0;
offScreen=Image.createImage(mx,my);
offg=offScreen.getGraphics();
try{
bk=Image.createImage("/bk.png");
player=Image.createImage("/player.png");
}catch(Exception ex){}
new Thread(this).start();
}
public void drawBk(){
offg.drawImage(bk,fx,fy,0);
offg.setClip(0,0,mx,my);
}
public void drawPlayer(){
offg.setClip(px,py,22,24);
offg.drawImage(player,px-22*(nowFrame-1),py,0);
offg.setClip(0,0,mx,my);
}
public void paint(Graphics g){
drawBk();
drawPlayer();
g.drawImage(offScreen, 0, 0, 0);
}
public void keyPressed(int keyCode){
switch(keyCode){
case Canvas.KEY_NUM2:dir=1;nowFrame=0;nowFrame++;break;
case Canvas.KEY_NUM4:dir=2;nowFrame=9;nowFrame++;break;
case Canvas.KEY_NUM6:dir=3;nowFrame=3;nowFrame++;break;
case Canvas.KEY_NUM8:dir=4;nowFrame=6;nowFrame++;break;
}
}
public void keyReleased(int keyCode){
dir=0;
}
public void move(int k){
nowFrame++;
if(nowFrame>k+3)
nowFrame=k+1;
}
public void run(){
while(true){
if(dir==1){
move(0);
if(py>0)
py-=4;
}
if(dir==2){
move(9);
if(px>(mx-22)*1/4)
px-=4;
else{fx+=4;
if(fx>0)
{fx=0;
if(px>0)
px-=4;
}
}
}
if(dir==3){
move(3);
if(px<(mx-22)*3/4)
{px+=4;}
else{
if(fx<-320+mx)
{if(px<mx-22)
px+=4;}
else fx-=4;
}
}
if(dir==4){
move(6);
if(py<my-46)
py+=4;
}
repaint();
try{Thread.sleep(100);}catch(Exception ex){}
}}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -