📄 mycanvas.java
字号:
import java.io.IOException;
import java.util.Random;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
public class MyCanvas extends Canvas implements Runnable{
Image logo_firm;
Image logo_maker;
Image bg_caidan;
Font font;
String[] str={"初入江湖",
"回忆前尘",
"关于制作",
"退出游戏"};
Random r=new Random();
public MyCanvas() {
logo_firm=creatImage("logo_cn.png");
logo_maker=creatImage("game_logo.png");
bg_caidan=creatImage("beijing.png");
font=Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_BOLD,Font.SIZE_LARGE);
new Thread(this).start();
}
public static int gameStatus=0;
public static final int LOGO_FIRM=0;
public static final int LOGO_MAKER=1;
public static final int START_NEWGAME=2;
public static final int SCREEN_W=240;
public static final int SCREEN_H=320;
public static int gameCount=0;
public static int index=0;
protected void paint(Graphics g) {
switch(gameStatus){
case LOGO_FIRM:
g.setColor(-1);
g.fillRect(0, 0, SCREEN_W, SCREEN_H);
g.drawImage(logo_firm,
SCREEN_W>>1,
SCREEN_H>>1,
Graphics.HCENTER|Graphics.VCENTER);
System.out.println("123464");
if(gameCount==20){
gameStatus=LOGO_MAKER;
gameCount=0;
logo_firm=null;
}
if(logo_maker==null){
logo_maker=creatImage("beijing.png");
}
break;
case LOGO_MAKER:
System.out.println("12ffdf4");
g.setColor(-1);
g.fillRect(0, 0, SCREEN_W, SCREEN_H);
g.drawImage(logo_maker,
SCREEN_W>>1,
SCREEN_H>>1,
Graphics.HCENTER|Graphics.VCENTER);
if(gameCount==30){
gameStatus=START_NEWGAME;
gameCount=0;
}
if(bg_caidan==null){
bg_caidan=creatImage("game_logo.png");
}
break;
case START_NEWGAME:
g.setColor(-1);
g.fillRect(0, 0, SCREEN_W, SCREEN_H);
g.drawImage(bg_caidan,0,0,0);
g.drawImage(logo_maker, 70, 20, 0);
g.setFont(font);
for(int i=0;i<str.length;i++){
g.drawString(str[i], 50,80+20*i,0);
}
g.setColor(r.nextInt(0X1000000));
g.fillArc(40,85+index*20,10,10,0,360);
g.fillArc(109,85+index*20,10,10,0,360);
g.drawRect(49,82+index*20,60,15);
break;
}
gameCount++;
if(hasPressed(MC_UP)){
}
}
public static Image creatImage(String img_name){
try {
return Image.createImage("/"+img_name);
} catch (IOException e) {
System.out.println("载入图片"+img_name+"出现异常");
e.printStackTrace();
return null;
}
}
public static final int MAX_FPS=15;
public void run() {
long start=0;
while(true){
start=System.currentTimeMillis();
repaint();
long time=System.currentTimeMillis()-start;
try {
Thread.sleep(1000/MAX_FPS);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
//**************************************************
public static final int MC_UP=1;
public static final int MC_DOWN=1<<1;
public static final int MC_LEFT=1<<2;
public static final int MC_RIGHT=1<<3;
static int key=0;
static int getKey(int keyCode){
switch(keyCode){
case KEY_NUM2:
case -1:
return MC_UP;
case KEY_NUM8:
case -2:
return MC_DOWN;
case KEY_NUM4:
case -3:
return MC_LEFT;
case KEY_NUM6:
case -4:
return MC_RIGHT;
}
return keyCode;
}
public boolean hasPressed(int keyCode){
return (key&keyCode)!=0;
}
public void keyPressed(int keyCode){
key|=getKey(keyCode);
if(keyCode==-1){
index=(index-1+4)%4;
}else if(keyCode==-2){
index=(index+1)%4;
}
}
public void keyRelease(int keyCode){
key&=~getKey(keyCode);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -