?? gamecanvas.java
字號:
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
class GameCanvas extends Canvas
implements Runnable
{
protected void hideNotify()
{
}
protected void showNotify()
{
repaint(0, 0, Harry.SW, Harry.SH);
GameCanvas _tmp = this;
if(ResourceManager.repeatFlag)
rm.play(ResourceManager.tsound, ResourceManager.repeatFlag);
}
public GameCanvas(Harry harry)
{
status = 0;
speedlevel = 1;
shopMsg = 0;
shopKey = false;
tmpMsg = 0;
rTxt = 0;
itemok = 0;
midlet = harry;
}
void init()
{
offimg = Image.createImage(Harry.SW, Harry.SH);
g2 = offimg.getGraphics();
gscreen = new GameScreen(this);
rm = new ResourceManager(this);
rm.setOption(midlet.getSoundOption(), midlet.getEffectOption());
speedlevel = (byte)midlet.getSpeed();
bg = midlet.getBg();
setSpeed();
mscreen = new MenuScreen(this);
mscreen.rm = rm;
gscreen = null;
System.gc();
display = Display.getDisplay(midlet);
display.setCurrent(this);
repaint();
(new Thread(this)).start();
mscreen.setTitleStatus((byte)11);
font = Font.getDefaultFont();
}
public void newGame()
{
status = 1;
mscreen = null;
rm.unloadImage();
System.gc();
rm.imageLoad((byte)3);
System.gc();
gscreen = new GameScreen(this);
gscreen.rm = rm;
status = 2;
gscreen.newGame();
}
public void menu()
{
status = 1;
gscreen = null;
rm.unloadImage();
System.gc();
rm.imageLoad((byte)1);
System.gc();
mscreen = new MenuScreen(this);
mscreen.rm = rm;
status = 0;
mscreen.titlestatus = 1;
}
public void paint(Graphics g1)
{
g = g1;
switch(status)
{
case 0: // '\0'
mscreen.paint();
break;
case 2: // '\002'
gscreen.update();
gscreen.paint();
break;
case 12: // '\f'
case 14: // '\016'
paintShop();
break;
case 17: // '\021'
fillScreen(0x7fd2ff);
paintBox(0, 0, Harry.SW, Harry.SH);
paintHelp();
drawImageCenter(rm.i_p, rm.publicCoord[11], Harry.CX, Harry.SH - 6);
break;
case 21: // '\025'
case 22: // '\026'
fillScreen(0x7fd2ff);
paintBox(0, 0, Harry.SW, Harry.SH);
paintLoad();
drawImageCenter(rm.i_p, rm.publicCoord[11], Harry.CX, Harry.SH - 6);
break;
}
}
public void keyPressed(int i)
{
switch(status)
{
case 0: // '\0'
mscreen.keyPressed(i);
break;
case 2: // '\002'
gscreen.keyPressed(i);
break;
case 12: // '\f'
case 14: // '\016'
shopKeypress(i);
break;
case 17: // '\021'
helpKeyPressed(i);
break;
case 21: // '\025'
loadKeyPressed(i);
break;
case 22: // '\026'
saveKeyPressed(i);
break;
case 1: // '\001'
saveKeyPressed(i);
mscreen = new MenuScreen(this);
mscreen.rm = rm;
mscreen.titlestatus = 0;
status = 0;
break;
}
}
public void keyReleased(int i)
{
gscreen.keyReleased(i);
}
public void setGameStatus(byte byte0)
{
prevscreen = byte0;
status = byte0;
}
public void setGameStatus(byte byte0, byte byte1)
{
prevscreen = byte1;
status = byte0;
}
public void setSoundMax()
{
GameCanvas _tmp = this;
ResourceManager.intVol++;
GameCanvas _tmp1 = this;
if(ResourceManager.intVol > 5)
{
GameCanvas _tmp2 = this;
ResourceManager.intVol = 0;
}
midlet.setOption(ResourceManager.intVol, midlet.getEffectOption(), speedlevel, bg);
rm.soundOnOff();
}
public void setSoundMin()
{
GameCanvas _tmp = this;
ResourceManager.intVol--;
GameCanvas _tmp1 = this;
if(ResourceManager.intVol < 0)
{
GameCanvas _tmp2 = this;
ResourceManager.intVol = 5;
}
midlet.setOption(ResourceManager.intVol, midlet.getEffectOption(), speedlevel, bg);
rm.soundOnOff();
}
public void setSpeedMax()
{
speedlevel++;
if(speedlevel > 4)
speedlevel = 0;
setSpeed();
}
public void setSpeedMin()
{
speedlevel--;
if(speedlevel < 0)
speedlevel = 4;
setSpeed();
}
public void setSpeed()
{
switch(speedlevel)
{
case 0: // '\0'
speedgap = 200;
break;
case 1: // '\001'
speedgap = 150;
break;
case 2: // '\002'
speedgap = 100;
break;
case 3: // '\003'
speedgap = 50;
break;
case 4: // '\004'
speedgap = 5;
break;
}
midlet.setOption(midlet.getSoundOption(), midlet.getEffectOption(), speedlevel, bg);
}
public void setBg()
{
bg = bg != 1 ? 1 : 0;
midlet.setOption(midlet.getSoundOption(), midlet.getEffectOption(), speedlevel, bg);
}
public void run()
{
do
{
updateFrame();
Thread.yield();
try
{
Thread.sleep(speedgap);
}
catch(Exception exception) { }
repaint(0, 0, Harry.SW, Harry.SH);
} while(true);
}
public void updateFrame()
{
frame++;
if(frame == 0x7fffffff)
frame = 0;
frame2 = frame % 2;
frame3 = frame % 3;
frame4 = frame % 4;
if(frame % 50 == 0)
Runtime.getRuntime().gc();
}
public void drawImage(Image image, short aword0[], int i, int j)
{
g.setClip(i, j, aword0[2], aword0[3]);
if(image == null)
{
return;
} else
{
g.drawImage(image, i - aword0[0], j - aword0[1], 20);
return;
}
}
public void drawImage(Image image, int ai[], int i, int j)
{
g.setClip(i, j, ai[2], ai[3]);
if(image == null)
{
return;
} else
{
g.drawImage(image, i - ai[0], j - ai[1], 20);
return;
}
}
public void drawImage(Image image, byte abyte0[], int i, int j)
{
g.setClip(i, j, abyte0[2], abyte0[3]);
if(image == null)
{
return;
} else
{
g.drawImage(image, i - abyte0[0], j - abyte0[1], 20);
return;
}
}
public void drawImageCenter(Image image, short aword0[], int i, int j)
{
drawImage(image, aword0, i - aword0[2] / 2, j - aword0[3] / 2);
}
public void drawImageCenter(Image image, byte abyte0[], int i, int j)
{
drawImage(image, abyte0, i - abyte0[2] / 2, j - abyte0[3] / 2);
}
public void drawImage(Image image, int i, int j)
{
if(image == null)
{
return;
} else
{
drawImage(image, i, j, 20);
return;
}
}
public void drawImage(Image image, int i, int j, int k)
{
try
{
g.setClip(0, 0, Harry.SW, Harry.SH);
g.drawImage(image, i, j, k);
}
catch(Exception exception)
{
exception.printStackTrace();
}
}
public void setColor(int i)
{
g.setColor(i);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -