📄 gamecanvas.java
字号:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;
public class gameCanvas extends Canvas
{
private final mobileMAP midletCanvas;
private int gameaction, getMAP, mapX, mapY, mapXgo, mapYgo, mapNew, readline, nextPage;
private Image houseImage, keyImage;
private Image[] mapImage, catImage;
private boolean catGO, houseStatus;
private boolean[] keyStatus;
private int i, j, cat, X, Y, keyType, playGame, finalX, finalY, saveKey, X_MAP, Y_MAP;
private InputStream inputmap;
private String[][] viewmap;
private int[][] mapkey;
private NextMAP nextMAP;
public gameCanvas(mobileMAP midletCanvas)
{
this.midletCanvas=midletCanvas;
mapImage=new Image[4];
catImage=new Image[2];
try{
houseImage=Image.createImage("/house.png");
keyImage=Image.createImage("/key.png");
mapImage[0]=Image.createImage("/map1.png");
mapImage[1]=Image.createImage("/map2.png");
mapImage[2]=Image.createImage("/map3.png");
mapImage[3]=Image.createImage("/map4.png");
catImage[0]=Image.createImage("/cat1.png");
catImage[1]=Image.createImage("/cat2.png");
}catch(Exception ex){}
readFileMap();
}
public void keyPressed(int keyCode)
{
gameaction=getGameAction(keyCode);
switch(gameaction)
{
case UP:
Y--;
if(Y<0) Y=0;
checkGO(X,Y);
if(!catGO && Y>=0) Y++;
repaint();
break;
case DOWN:
Y++;
if(Y>(mapYgo-1)) Y=mapYgo-1;
checkGO(X,Y);
if(!catGO && Y<mapYgo) Y--;
repaint();
break;
case LEFT:
cat=1;
X--;
if(X<0) X=0;
checkGO(X,Y);
if(!catGO && X>=0) X++;
if(playGame==2)
if(X<=8)
nextPage=0;
else
nextPage=160;
repaint();
break;
case RIGHT:
cat=0;
X++;
if(X>(mapXgo-1)) X=mapXgo-1;
checkGO(X,Y);
if(!catGO && X<mapXgo) X--;
if(playGame==2)
if(X>8)
nextPage=160;
else
nextPage=0;
repaint();
break;
}
}
public void paint(Graphics g)
{
for(i=0;i<12; i++)
for(j=0;j<9;j++)
g.drawImage(mapImage[3], 20*j, 15*i, Graphics.LEFT | Graphics.TOP);
for(i=0; i<viewmap.length; i++)
{
for(j=0; j<viewmap[0].length; j++)
{
if(playGame==1)
{
X_MAP=20*j;
Y_MAP=15*i;
}else if(playGame==2){
X_MAP=20*j-nextPage;
Y_MAP=15*i;
}else{
X_MAP=20*(4-X+j);
Y_MAP=15*(5-Y+i);
}
if(Y_MAP>=0 && Y_MAP<=180 && X_MAP>=0 && X_MAP<=180)
{
if(viewmap[i][j].equals("1") || viewmap[i][j].equals("4") || viewmap[i][j].equals("5"))
g.drawImage(mapImage[0], X_MAP, Y_MAP, Graphics.LEFT | Graphics.TOP);
if(viewmap[i][j].equals("2"))
g.drawImage(mapImage[1], X_MAP, Y_MAP, Graphics.LEFT | Graphics.TOP);
if(viewmap[i][j].equals("3"))
g.drawImage(mapImage[2], X_MAP, Y_MAP, Graphics.LEFT | Graphics.TOP);
if(viewmap[i][j].equals("4"))
g.drawImage(houseImage, X_MAP, Y_MAP, Graphics.LEFT | Graphics.TOP);
}
}
}
for(i=0;i<keyStatus.length;i++)
if(!keyStatus[i])
if(playGame==3)
g.drawImage(keyImage, 2+20*(4-X+mapkey[i][0]), 2+15*(5-Y+mapkey[i][1]), Graphics.LEFT | Graphics.TOP);
else if(nextPage==0)
g.drawImage(keyImage, 2+20*mapkey[i][0], 2+15*mapkey[i][1], Graphics.LEFT | Graphics.TOP);
else
g.drawImage(keyImage, (2+20*mapkey[i][0])-nextPage, 2+15*mapkey[i][1], Graphics.LEFT | Graphics.TOP);
if(playGame==3)
g.drawImage(catImage[cat], 2+20*4, 15*5, Graphics.LEFT | Graphics.TOP);
else
g.drawImage(catImage[cat], 2+20*X-nextPage, 15*Y, Graphics.LEFT | Graphics.TOP);
if(houseStatus && (finalX==X) && (finalY==Y))
{
g.setColor(0x90EE90);
g.fillRect(getWidth()/2-45, getHeight()/2-18, 90, 30);
g.setColor(0x000080);
if(playGame==3){
g.drawString("
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -