?? gmanager.java.bak
字號:
//////////////////////////////////////////////////////////////////////////
//////////////////// Magic.CY 2004-9-16 10:28 //////////////////
//////////////////////////////////////////////////////////////////////////
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import java.util.*;
import java.io.*;
public class GManager implements Runnable
{
public static final int nowmenu = 0;
public static final int nowgameplay = 1;
public static final int mainmenu = 0;
public static final int menuhelp = 1;
public static final int menuend = 2;
public static final int newgame = 3;
public GDate gd;
public GCanvas gc;
public GMidlet mid;
public static Image bufferimage;
public Graphics bufferg;
public int SCREENW,SCREENH;
public boolean gamerunning;
public int gamestates = nowmenu;
public int menustates = mainmenu;
public int menuselect = 1;
public long time;
public static int gamecount;
///////////////////////////////////////////////////////////////
public static int nowstage = 4;
public Image bkimage,bkaaaa;
public static int bkcount = 0;
public int [][]bk =
{
{1,2,3,1,2,3,1,2,3,4,5,6,4,7,8,1,2,3,1,2,3,1,2,3,1},//第1關
{1,0,1,1,1,0,0,1,0,0,1,1,1,1,1,0,0,0,1,0,0,1,0,1,0},//第2關
{2,0,3,2,4,0,1,2,1,3,1,0,2,0,1,0,3,2,0,3,2,3,0,0,3},//第3關
{4,2,0,0,0,4,0,2,0,0,0,2,0,0,0,2,0,3,2,0,1,0,0,3,1},//第4關
{0,0,0,5,4,6,7,4,5,0,0,0,0,0,0,5,4,4,4,4,4,4,5,0,0},//第5關
{0,0,3,1,1,1,1,1,1,2,0,0,0,0,3,1,1,1,1,1,1,1,1,2,0},//第5關
{0,0,5,4,4,6,7,4,4,5,0,0,0,0,5,4,4,4,6,7,4,4,4,5,0},//第5關
};
public static GBase player;
public static Vector enemy = new Vector();
////////////////////////////////////////////////////////////////
public GManager(GMidlet mid)
{
this.mid = mid;
gd = new GDate();
gc = new GCanvas();
Display.getDisplay(mid).setCurrent(gc);
SCREENW = gc.getWidth();
SCREENH = gc.getHeight();
bufferimage = Image.createImage(SCREENW,SCREENH);
bufferg = bufferimage.getGraphics();
try
{
bkimage = Image.createImage("/bk.png");
bkaaaa = Image.createImage("/bk2.png");
}catch(Exception e){}
player = new GPlayerJin();
}
////////////////////////////////////////////////////////////////
public void run()
{
while(gamerunning)
{
time = System.currentTimeMillis();
paint();
update();
gamecount++;
if(System.currentTimeMillis() - time <150)
try{Thread.sleep(150-System.currentTimeMillis() + time );}catch(Exception e){}
}
}
///////////////////////////////////////////////////////////////
public void paint()
{
switch(gamestates)
{
case nowgameplay:
paintgameplay();
break;
case nowmenu:
paintgamemenu();
break;
default:
break;
}
bufferg.setClip(0,0,80,30);
bufferg.setColor(0,0,0);
bufferg.fillRect(0,0,80,30);
bufferg.setColor(255,255,255);
bufferg.drawString(""+(System.currentTimeMillis() - time)+" "+(Runtime.getRuntime().freeMemory()/1024),2,12,0);
gc.repaint();
gc.serviceRepaints();
}
///////////////////////////////////////////////////////////////
public void update()
{
switch(gamestates)
{
case nowgameplay:
updategameplay();
break;
case nowmenu:
updategamemenu();
break;
default:
break;
}
}
/////////////////////////////////////////////////////////////////
public void paintgameplay()
{
switch(nowstage)
{
case 1:
paint1bk();
break;
case 2:
paint2bk();
break;
case 3:
paint3bk();
break;
case 4:
paint4bk();
break;
case 5:
paint5bk();
break;
case 6:
paint6bk();
break;
}
player.paint(bufferg);
}
public void paint1bk()
{
bufferg.setColor(0,0,0);
bufferg.setClip(0,0,128,128);
for(int i = 0;i < 9;i ++)
{
bufferg.setClip(-(bkcount%16)+i*16,0,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-16,0-64,20);
}
for(int i = 0;i<9;i++)
{
bufferg.setClip(-(bkcount%16)+i*16,16,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-96,16,20);
bufferg.setClip(-(bkcount%16)+i*16,32,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-96,32,20);
}
for(int i = 0;i < 9;i ++)
{
switch(bk[0][i+bkcount/16])
{
case 1://墻
bufferg.setClip(-(bkcount%16)+i*16,32,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-80,32-64,20);
bufferg.setClip(-(bkcount%16)+i*16,10,16,32);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-116,10,20);
break;
case 2://窗1
bufferg.setClip(-(bkcount%16)+i*16,16,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16,16-48,20);
bufferg.setClip(-(bkcount%16)+i*16,32,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-80,32-64,20);
break;
case 3://窗2
bufferg.setClip(-(bkcount%16)+i*16,16,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-16,16-48,20);
bufferg.setClip(-(bkcount%16)+i*16,32,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-80,32-64,20);
break;
case 4://人
bufferg.setClip(-(bkcount%16)+i*16,10,16,32);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-116,10,20);
bufferg.setClip(-(bkcount%16)+i*16,16,16,32);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-112,16-48,20);
break;
case 5://門1
bufferg.setClip(-(bkcount%16)+i*16,16,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-64,16-48,20);
bufferg.setClip(-(bkcount%16)+i*16,32,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-32,32-64,20);
break;
case 6://門2
bufferg.setClip(-(bkcount%16)+i*16,16,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-80,16-48,20);
bufferg.setClip(-(bkcount%16)+i*16,32,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-48,32-64,20);
break;
case 7://有人的窗1
bufferg.setClip(-(bkcount%16)+i*16,16,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-32,16-48,20);
bufferg.setClip(-(bkcount%16)+i*16,32,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-80,32-64,20);
break;
case 8://有人的窗2
bufferg.setClip(-(bkcount%16)+i*16,16,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-48,16-48,20);
bufferg.setClip(-(bkcount%16)+i*16,32,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-80,32-64,20);
break;
}
}
for(int i = 0;i < 9;i ++)
{
for(int j = 0;j < 4;j ++)
{
bufferg.setClip(-(bkcount%16)+i*16,48+j*16,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-64,48+j*16-64,20);
}
}
bufferg.setColor(115,74,0);
bufferg.setClip(0,112,128,16);
bufferg.fillRect(0,112,128,16);
}
public void paint2bk()
{
for(int i = 0;i < 9;i ++)
{
bufferg.setClip(-((bkcount/3)%16)+i*16,0,16,16);
bufferg.drawImage(bkimage,-((bkcount/3)%16)+i*16-64-bk[1][i+bkcount/48]*16,0,20);
}
for(int i = 0;i<9;i++)
{
bufferg.setClip(-((bkcount/2)%16)+i*16,16,16,16);
bufferg.drawImage(bkimage,-((bkcount/2)%16)+i*16-32-((bkcount/32+i)%2)*16,16,20);
}
bufferg.setColor(0,73,0);
bufferg.setClip(0,32,128,8);
bufferg.fillRect(0,32,128,8);
for(int i = 0;i<9;i++)
{
bufferg.setClip(-((bkcount)%16)+i*16,32,16,16);
bufferg.drawImage(bkimage,-((bkcount)%16)+i*16,32,20);
}
for(int i = 0;i < 9;i ++)
{
for(int j = 0;j < 4;j ++)
{
bufferg.setClip(-(bkcount%16)+i*16,48+j*16,16,16);
bufferg.drawImage(bkimage,-(bkcount%16)+i*16-16,48+j*16,20);
}
}
bufferg.setColor(115,74,0);
bufferg.setClip(0,112,128,16);
bufferg.fillRect(0,112,128,16);
}
public void paint3bk()
{
bufferg.setColor(0x22aaff);
bufferg.setClip(0,0,128,48);
bufferg.fillRect(0,0,128,48);
for(int i = 0;i < 9;i ++)
{
switch(bk[2][i+bkcount/48])
{
case 1://樹
bufferg.setClip(-((bkcount/3)%16)+i*16,0,16,16);
bufferg.drawImage(bkimage,-((bkcount/3)%16)+i*16-32,0-16,20);
bufferg.setClip(-((bkcount/3)%16)+i*16,16,16,16);
bufferg.drawImage(bkimage,-((bkcount/3)%16)+i*16-32,16-16,20);
bufferg.setClip(-((bkcount/3)%16)+i*16,32,16,16);
bufferg.drawImage(bkimage,-((bkcount/3)%16)+i*16-16,32-16,20);
break;
case 2://大竹
bufferg.setClip(-((bkcount/3)%16)+i*16,0,16,16);
bufferg.drawImage(bkimage,-((bkcount/3)%16)+i*16,0-16,20);
bufferg.setClip(-((bkcount/3)%16)+i*16,16,16,16);
bufferg.drawImage(bkimage,-((bkcount/3)%16)+i*16,16-16,20);
bufferg.setClip(-((bkcount/3)%16)+i*16,32,16,16);
bufferg.drawImage(bkimage,-((bkcount/3)%16)+i*16,32-16,20);
break;
case 3://小竹葉少
bufferg.setClip(-((bkcount/3)%16)+i*16,0,16,16);
bufferg.drawImage(bkimage,-((bkcount/3)%16)+i*16-48,0-16,20);
bufferg.setClip(-((bkcount/3)%16)+i*16,16,16,16);
bufferg.drawImage(bkimage,-((bkcount/3)%16)+i*16-64,16-16,20);
bufferg.setClip(-((bkcount/3)%16)+i*16,32,16,16);
bufferg.drawImage(bkimage,-((bkcount/3)%16)+i*16-48,32-16,20);
break;
case 4://小竹葉多
bufferg.setClip(-((bkcount/3)%16)+i*16,0,16,16);
bufferg.drawImage(bkimage,-((bkcount/3)%16)+i*16-64,0-16,20);
bufferg.setClip(-((bkcount/3)%16)+i*16,16,16,16);
bufferg.drawImage(bkimage,-((bkcount/3)%16)+i*16-64,16-16,20);
bufferg.setClip(-((bkcount/3)%16)+i*16,32,16,16);
bufferg.drawImage(bkimage,-((bkcount/3)%16)+i*16-48,32-16,20);
break;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -