📄 gamecanvas.java
字号:
pg=new Penguin(gda);
scrW=getWidth();
scrH=getHeight();
/////rubbish
//for(int i=0;i<10240;i++) {
// rubbish[i]=10;
//}
//if(!rms.checkSave()) {
//rms.writeRecords();
//}
}
public void loadIMG(){
try {
company_logo = ScreateImage("company_logo");
simlifeimg = ScreateImage("simlife");
if(simlifeimg==null)simlifeimg = ScreateImage("simlife");
bg=ScreateImage("bg");
water1=ScreateImage("water1");
water2=ScreateImage("water2");
water3=ScreateImage("water3");
seasky=ScreateImage("seasky");
snow=ScreateImage("snow");
ice=ScreateImage("ice");
icon=ScreateImage("icon");
key=ScreateImage("key");
nar1=ScreateImage("nar1");
nar2=ScreateImage("nar2");
nar3=ScreateImage("nar3");
nar4=ScreateImage("nar4");
nar5=ScreateImage("nar5");
//menu=ScreateImage("menu");
shadow1=ScreateImage("shadow1");
shadow2=ScreateImage("shadow2");
status=new Image[9];
for(int i=0;i<9;i++)status[i]=ScreateImage("status"+(i+1)+"");
nimg=new Image[11];
for(int i=0;i<11;i++)nimg[i]=ScreateImage("n"+(i+1)+"");
cloudImg=ScreateImage("cloud");
sceneryImg=new Image[4];
for(int i=0;i<4;i++)sceneryImg[i]=ScreateImage("scenery"+(i+1)+"");
holdbackImg=new Image[7];
for(int i=0;i<7;i++)holdbackImg[i]=ScreateImage("holdback"+(i+1)+"");
penguin=new Image[28];
for(int i=0;i<28;i++)penguin[i]=ScreateImage("penguin"+(i+1)+"");
snowManImg=new Image[3];
snowManImg[0]=ScreateImage("snowman1");
snowManImg[1]=ScreateImage("snowman2");
snowManImg[2]=ScreateImage("snowman3");
glogo=ScreateImage("logo");
menu1=ScreateImage("menu1");
menu2=ScreateImage("menu2");
menu3=ScreateImage("menu3");
menu4=ScreateImage("menu4");
menu5=ScreateImage("menu5");
menu6=ScreateImage("menu6");
menu7=ScreateImage("menu7");
} catch(Exception e) {
;
}
}
public void start() {
gDisp.setCurrent(this);
}
public int pow(int base, int pw) {
int i=0,ret=1,tmp=0;
if(pw<0) {
ret=0;
}
else if(pw==0) {
ret=1;
}
else if(pw==1) {
ret=base;
}
else {
for(i=0;i<pw;i++) {
ret*=base;
}
}
return ret;
}
public void reset() {
gStep=0;
passCount=8;
clearKey();
clearKeyStack();
showTitle=false;
retGame=false;
}
public void loadImage() { //load images for each level
System.gc();
}
public void loadMenuImage() { //load image for menu
}
void testINIT() {
InputStream inputstreams;
DataInputStream dataInputStreams;
try {
inputstreams = Connector.openInputStream("scratchpad:///0;pos=0");
dataInputStreams = new DataInputStream(inputstreams);
byte0 = (byte) dataInputStreams.read();
inputstreams.close();
}
catch (Exception exception1) {
//inputstreams.close();
inputstreams = null;
System.out.println(exception1.getMessage() + 8);
}
}
public void paint(Graphics g) {
g.lock();
//System.out.println("showcon"+showCon);
int i,j;
if (!canPaint) {
int SCREEN_WIDTH = 128;
int SCREEN_HEIGHT = 128;
g.setColor(g.getColorOfRGB(255, 255, 255));
g.fillRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
//System.out.println("xsxsxs");
Font font = Font.getFont(0x71000000);
g.setFont(font);
g.setColor(0);
g.drawString("資料載入中", SCREEN_WIDTH / 2, SCREEN_HEIGHT - 40);
// g.setColor(0);
//g.drawString("err="+HOSTNAME3, 0, 10);
g.unlock(true);
//canPaint = true;
return;
}
if(loadingFlg) {
//////g.setClip(0,0,scrW,scrH);
g.setColor(g.getColorOfRGB(118,250,255));
g.fillRect(0,0,scrW,scrH);
g.setColor(g.getColorOfRGB(0,0x33,0xAA));
//g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
if(loadingProcess%3==0) {
g.drawString("載 入 中.",38,45+adad);
}
else if(loadingProcess%3==1) {
g.drawString("載 入 中. .",38,45+adad);
}
else if(loadingProcess%3==2) {
g.drawString("載 入 中. . .",38,45+adad);
}
g.setColor(g.getColorOfRGB(0,0,0));
g.drawRect(29,93,70,2);
g.setColor(g.getColorOfRGB(0,0x33,0xAA));
g.fillRect(29,94,loadingProcess*5+1,1);
} else {
/////////////////////////////////////////////////////////
//System.out.println("xsxsxs"+showCon);
if(showCon==0) { //company logo
//////g.setClip(0,0,128,128);
g.setColor(g.getColorOfRGB(0xDC,0xDC,0xDC));
g.fillRect(0,0,128,128);
g.setColor(g.getColorOfRGB(0,0,0));
g.drawRect(0,0,127,127);
g.drawImage(simlifeimg, (128-simlifeimg.getWidth())/2,115);
int tmpy=0;
if(m_delay<5)tmpy=34-(4-m_delay)*14;
else tmpy=31;
g.drawImage(company_logo, (128-company_logo.getWidth())/2,tmpy);
int tmpx=(128-company_logo.getWidth())/2+54;
tmpy=34;
}
else if(showCon==1) { //game logo
if(mStep==0) {
////g.setClip(0,0-passCount*8,scrW,scrH);
drawMenuBg(g,0-passCount*16);
}
else if(mStep==1) {
drawMenuBg(g,0);
//////g.setClip(9+passCount*(pow(2,passCount)),9-passCount*(pow(2,passCount-1)),110,61);
g.drawImage(glogo,9+passCount*(pow(2,passCount)),9-passCount*(pow(2,passCount-1)));
}
else if(mStep==2) {
drawMenuBg(g,0);
//////g.setClip(9,9,110,61);
g.drawImage(glogo,9,9);
//////g.setClip(46-passCount*(pow(2,passCount-1)),15-passCount*(pow(2,passCount-2)),22,24);
g.drawImage(icon,46-passCount*(pow(2,passCount-1)),15-passCount*(pow(2,passCount-2)));
}
else if(mStep==3) {
drawMenuBg(g,0);
//////g.setClip(9,9,110,61);
g.drawImage(glogo,9,9);
//////g.setClip(46,15,22,24);
g.drawImage(icon,46,15);
////g.setClip(42+passCount*(pow(2,passCount-1)),81,39,25);
g.drawImage(menu1,42+passCount*(pow(2,passCount-1)),81);
//////g.setClip(49+passCount*(pow(2,passCount-1)),90,25,20);
//g.drawImage(font,51+passCount*(pow(2,passCount-1))-menuId/4*21,91-menuId%4*11);
//g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
g.setColor(g.getColorOfRGB(0xFF,0xEE,0xA3));
g.drawString(menuStr[menuId],50+passCount*(pow(2,passCount-1)),90+adad);
g.setColor(g.getColorOfRGB(0x33,0x33,0xCC));
g.drawString(menuStr[menuId],49+passCount*(pow(2,passCount-1)),91+adad);
}
else if(mStep==4) {
drawMenuBg(g,0);
//////g.setClip(9,9,110,61);
g.drawImage(glogo,9,9);
////////g.setClip(46,15,22,24);
g.drawImage(icon,46,15);
////g.setClip(42,81,39,25);
g.drawImage(menu1,42,81);
//////g.setClip(49,90,25,20);
//g.drawImage(font,51-menuId/4*21,91-menuId%4*11);
//g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
g.setColor(g.getColorOfRGB(0xFF,0xEE,0xA3));
g.drawString(menuStr[menuId],50,90+adad);
g.setColor(g.getColorOfRGB(0x33,0x33,0xCC));
g.drawString(menuStr[menuId],49,91+adad);
if(passCount%2==0) {
////g.setClip(26,89,13,11);
g.drawImage(menu2,26,89);
////g.setClip(84,89,13,11);
g.drawImage(menu3,84,89);
}
}
else if(mStep==5) {
drawMenuBg(g,0);
//g.setClip(9,9,110,61);
g.drawImage(glogo,9,9);
//g.setClip(46,15,22,24);
g.drawImage(icon,46,15);
g.drawImage(menu1,42,81);
//g.setClip(49,90,25,20);
//g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
g.setColor(g.getColorOfRGB(0xFF,0xEE,0xA3));
g.drawString(menuStr[menuId],50,90+adad);
g.setColor(g.getColorOfRGB(0x33,0x33,0xCC));
g.drawString(menuStr[menuId],49,91+adad);
g.drawImage(menu2,26,89);
g.drawImage(menu3,84,89);
}
else if(mStep==6) {
drawMenuBg(g,0);
//g.setClip(9,9,110,61);
g.drawImage(glogo,9,9);
//g.setClip(46,15,22,24);
g.drawImage(icon,46,15);
g.drawImage(menu1,42-(4-passCount)*(pow(2,(4-passCount))),81);
//g.setClip(49-(4-passCount)*(pow(2,(4-passCount))),90,25,20);
//g.drawImage(font,51-(4-passCount)*(pow(2,(4-passCount)))-menuId/4*21,91-menuId%4*11);
//g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
g.setColor(g.getColorOfRGB(0xFF,0xEE,0xA3));
g.drawString(menuStr[menuId],50-(4-passCount)*(pow(2,(4-passCount))),90+adad);
g.setColor(g.getColorOfRGB(0x33,0x33,0xCC));
g.drawString(menuStr[menuId],49-(4-passCount)*(pow(2,(4-passCount))),91+adad);
g.drawImage(menu2,26-(4-passCount)*(pow(2,(4-passCount))),89);
g.drawImage(menu3,84-(4-passCount)*(pow(2,(4-passCount))),89);
}
else if(mStep==7) {
drawMenuBg(g,0);
//g.setClip(9,9,110,61);
g.drawImage(glogo,9,9);
//g.setClip(46-(4-passCount)*(pow(2,(4-passCount))),15-(4-passCount)*(pow(2,(4-passCount))),22,24);
g.drawImage(icon,46-(4-passCount)*(pow(2,(4-passCount))),15-(4-passCount)*(pow(2,(4-passCount))));
}
else if(mStep==8) {
drawMenuBg(g,0);
//g.setClip(9+(4-passCount)*(pow(2,(4-passCount-1))),9-(4-passCount)*(pow(2,(4-passCount))),110,61);
g.drawImage(glogo,9+(4-passCount)*(pow(2,(4-passCount-1))),9-(4-passCount)*(pow(2,(4-passCount))));
}
else if(mStep==9) {
g.setColor(g.getColorOfRGB(118,250,255));
//g.setClip(0,0-passCount*16,scrW,scrH+30);
g.fillRect(0,0-passCount*16,scrW,scrH+30);
if(menuId==0) {
loadingProcess=0;
g.setColor(g.getColorOfRGB(0,0x33,0xAA));
//g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
if(loadingProcess%3==0) {
g.drawString("載 入 中.",38,45+adad);
}
else if(loadingProcess%3==1) {
g.drawString("載 入 中. .",38,45+adad);
}
else if(loadingProcess%3==2) {
g.drawString("載 入 中. . .",38,45+adad);
}
g.setColor(g.getColorOfRGB(0,0,0));
g.drawRect(29,93,70,2);
g.setColor(g.getColorOfRGB(0,0x33,0xAA));
g.fillRect(29,94,loadingProcess*5+1,1);
}
}
else if(mStep==10) {
if(menuClassId==1) {
g.setColor(g.getColorOfRGB(118,250,255));
//g.setClip(0,0,scrW,scrH);
g.fillRect(0,0,scrW,scrH);
switch(menuId) {
case 1:
////g.setClip(9,9,110,105);
//g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
//g.setColor(g.getColorOfRGB(0,0,0));
//g.setClip(43,48,37,16);
//g.setColor(g.getColorOfRGB(0x63,0xD3,0xA5));
//g.fillRect(43,48,36,15);
int addy=15;
////////////關卡選擇
//g.setClip(50,49,25,15);
//g.drawImage(font,51-21,51-33);
g.setColor(g.getColorOfRGB(0xFF,0xEE,0xA3));
//g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
g.drawString("關卡",51,49-addy+adad);
g.setColor(g.getColorOfRGB(0x33,0x33,0xCC));
//g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
g.drawString("關卡",50,50-addy+adad);
//if(pg.counter%2==0) {
//g.setClip(35+(levelSelId-1)%3*19,66+(levelSelId-1)/3*15,14,15);
//g.setColor(0x00E88B38);
//g.fillRect(35+(levelSelId-1)%3*19,66+(levelSelId-1)/3*15-addy,14,15);
//}
g.setColor(g.getColorOfRGB(232, 139, 52));
g.fillRect(35 + (levelSelId - 1) % 3 * 19,
66 + (levelSelId - 1) / 3 * 15-addy, 14, 15);
for(i=0;i<9;i++) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -