📄 gamecanvas.java
字号:
if(gda.mapData[pg.posX/16][0]!=(byte)0xFF) {
if(gda.mapData[pg.posX/16][1]!=(byte)0x02) {
////g.setClip(pg.posX-gda.winX+4,pg.stepY-3,15,5);
g.drawImage(shadow1,pg.posX-gda.winX+4,pg.stepY-3);
}
} else {
if(gda.mapData[pg.posX/16][1]!=(byte)0x02) {
////g.setClip(pg.posX-gda.winX+4,pg.stepY-3,15,5);
g.drawImage(shadow2,pg.posX-gda.winX+4,pg.stepY-3);
}
}
}
//提示圖畫資訊
for(i=0;i<helpPoint.length;i++) {
if(helpPoint[i][0]==gda.gameLevel) {
if(helpPoint[i][2]>helpPoint[i][1]) {
for(j=0;j<=helpPoint[i][2]-helpPoint[i][1];j++) {
if((helpPoint[i][1]+j)*16-gda.winX>-32 && (helpPoint[i][1]+j)*16-gda.winX<160) {
if(j==0) {
g.drawImage(nar5,helpPoint[i][1]*16-gda.winX,90);
}
else if(j==helpPoint[i][2]-helpPoint[i][1]) {
g.drawImage(nar5,helpPoint[i][2]*16-gda.winX-6,90);
}
else {
g.drawImage(nar5,(helpPoint[i][1]+j)*16-gda.winX-6,90);
g.drawImage(nar5,(helpPoint[i][1]+j)*16-gda.winX+8-6,90);
}
}
}
if(helpPoint[i][2]-helpPoint[i][1]>1 && (helpPoint[i][2]-helpPoint[i][1])%2==0) {
if((helpPoint[i][1]+(helpPoint[i][2]-helpPoint[i][1])/2)*16+3-gda.winX>-32 && (helpPoint[i][1]+(helpPoint[i][2]-helpPoint[i][1])/2)*16-gda.winX<160) {
if(helpPoint[i][3]==0)
g.drawImage(nar1,(helpPoint[i][1]+(helpPoint[i][2]-helpPoint[i][1])/2)*16+3-gda.winX,78+pg.counter%2*2);
if(helpPoint[i][3]==1)
g.drawImage(nar2,(helpPoint[i][1]+(helpPoint[i][2]-helpPoint[i][1])/2)*16+3-gda.winX,78+pg.counter%2*2);
if(helpPoint[i][3]==2)
g.drawImage(nar3,(helpPoint[i][1]+(helpPoint[i][2]-helpPoint[i][1])/2)*16+3-gda.winX,78+pg.counter%2*2);
if(helpPoint[i][3]==3)
g.drawImage(nar4,(helpPoint[i][1]+(helpPoint[i][2]-helpPoint[i][1])/2)*16+3-gda.winX,78+pg.counter%2*2);
}
}
else if(helpPoint[i][2]-helpPoint[i][1]>1 && (helpPoint[i][2]-helpPoint[i][1])%2!=0) {
if((helpPoint[i][1]+(helpPoint[i][2]-helpPoint[i][1])/2)*16+3+8-gda.winX>-32 && (helpPoint[i][1]+(helpPoint[i][2]-helpPoint[i][1])/2)*16-gda.winX<160) {
if(helpPoint[i][3]==0)
g.drawImage(nar1,(helpPoint[i][1]+(helpPoint[i][2]-helpPoint[i][1])/2)*16+3+8-gda.winX,78+pg.counter%2*2);
if(helpPoint[i][3]==1)
g.drawImage(nar2,(helpPoint[i][1]+(helpPoint[i][2]-helpPoint[i][1])/2)*16+3+8-gda.winX,78+pg.counter%2*2);
if(helpPoint[i][3]==2)
g.drawImage(nar3,(helpPoint[i][1]+(helpPoint[i][2]-helpPoint[i][1])/2)*16+3+8-gda.winX,78+pg.counter%2*2);
if(helpPoint[i][3]==3)
g.drawImage(nar4,(helpPoint[i][1]+(helpPoint[i][2]-helpPoint[i][1])/2)*16+3+8-gda.winX,78+pg.counter%2*2);
}
}
else {
if(helpPoint[i][1]*16+10-gda.winX>-32 && helpPoint[i][1]*16+10-gda.winX<160) {
//g.setClip(helpPoint[i][1]*16+10-gda.winX,78+pg.counter%2*2,12,14);
if(helpPoint[i][3]==0)
g.drawImage(nar1,helpPoint[i][1]*16+10-gda.winX,78+pg.counter%2*2);
if(helpPoint[i][3]==1)
g.drawImage(nar2,helpPoint[i][1]*16+10-gda.winX,78+pg.counter%2*2);
if(helpPoint[i][3]==2)
g.drawImage(nar3,helpPoint[i][1]*16+10-gda.winX,78+pg.counter%2*2);
if(helpPoint[i][3]==3)
g.drawImage(nar4,helpPoint[i][1]*16+10-gda.winX,78+pg.counter%2*2);
}
}
} else {
if(helpPoint[i][1]*16-gda.winX>-32 && helpPoint[i][1]*16-gda.winX<160) {
g.drawImage(nar5,helpPoint[i][1]*16-gda.winX,90);
//g.setClip(helpPoint[i][1]*16-gda.winX+4,78+pg.counter%2*2,12,14);
if(helpPoint[i][3]==0)
g.drawImage(nar1,helpPoint[i][1]*16-gda.winX+4,78+pg.counter%2*2);
if(helpPoint[i][3]==1)
g.drawImage(nar2,helpPoint[i][1]*16-gda.winX+4,78+pg.counter%2*2);
if(helpPoint[i][3]==2)
g.drawImage(nar3,helpPoint[i][1]*16-gda.winX+4,78+pg.counter%2*2);
if(helpPoint[i][3]==3)
g.drawImage(nar4,helpPoint[i][1]*16-gda.winX+4,78+pg.counter%2*2);
}
}
}
}
//障礙
for(i=0;i<gda.colNum;i++) {
if(gda.mapData[i][1]!=(byte)0xFF) {
if(0+i*16-gda.winX>-32 && 0+i*16-gda.winX<160) {
if(gda.mapData[i][1]==(byte)0x02) { //平臺
if(i>0 && gda.mapData[i-1][1]!=(byte)0x02) {
////g.setClip(0+i*16-gda.winX,0+stepY-5-holdbackPos[gda.mapData[i][1]][3]/2,holdbackPos[gda.mapData[i][1]][2],holdbackPos[gda.mapData[i][1]][3]);
g.drawImage(holdbackImg[gda.mapData[i][1]],0+i*16-holdbackPos[gda.mapData[i][1]][0]-gda.winX+6,0+stepY-5-holdbackPos[gda.mapData[i][1]][3]/2-holdbackPos[gda.mapData[i][1]][1]);
}
else if(i<gda.colNum-1 && gda.mapData[i+1][1]!=(byte)0x02) {
////g.setClip(0+i*16-gda.winX,0+stepY-5-holdbackPos[gda.mapData[i][1]][3]/2,holdbackPos[gda.mapData[i][1]][2],holdbackPos[gda.mapData[i][1]][3]);
g.drawImage(holdbackImg[gda.mapData[i][1]],0+i*16-holdbackPos[gda.mapData[i][1]][0]-gda.winX-6,0+stepY-5-holdbackPos[gda.mapData[i][1]][3]/2-holdbackPos[gda.mapData[i][1]][1]);
}
else {
////g.setClip(0+i*16-gda.winX,0+stepY-5-holdbackPos[gda.mapData[i][1]][3]/2,holdbackPos[gda.mapData[i][1]][2],holdbackPos[gda.mapData[i][1]][3]);
g.drawImage(holdbackImg[gda.mapData[i][1]],0+i*16-holdbackPos[gda.mapData[i][1]][0]-gda.winX,0+stepY-5-holdbackPos[gda.mapData[i][1]][3]/2-holdbackPos[gda.mapData[i][1]][1]);
}
}
else if(gda.mapData[i][1]==(byte)0x00) {
////g.setClip(0+i*16-gda.winX,0+stepY-10-holdbackPos[gda.mapData[i][1]][3]/2,holdbackPos[gda.mapData[i][1]][2],holdbackPos[gda.mapData[i][1]][3]);
g.drawImage(holdbackImg[gda.mapData[i][1]],0+i*16-holdbackPos[gda.mapData[i][1]][0]-gda.winX,0+stepY-10-holdbackPos[gda.mapData[i][1]][3]/2-holdbackPos[gda.mapData[i][1]][1]);
}
else if(gda.mapData[i][1]==(byte)0x01) {
////g.setClip(0+i*16-gda.winX,0+stepY-8-holdbackPos[gda.mapData[i][1]][3]/2,holdbackPos[gda.mapData[i][1]][2],holdbackPos[gda.mapData[i][1]][3]);
g.drawImage(holdbackImg[gda.mapData[i][1]],0+i*16-holdbackPos[gda.mapData[i][1]][0]-gda.winX,0+stepY-8-holdbackPos[gda.mapData[i][1]][3]/2-holdbackPos[gda.mapData[i][1]][1]);
}
else if(gda.mapData[i][1]==(byte)0x05) {
////g.setClip(0+i*16-gda.winX,0+stepY-holdbackPos[gda.mapData[i][1]][3]/2,holdbackPos[gda.mapData[i][1]][2],holdbackPos[gda.mapData[i][1]][3]);
g.drawImage(holdbackImg[gda.mapData[i][1]],0+i*16-holdbackPos[gda.mapData[i][1]][0]-gda.winX,0+stepY-holdbackPos[gda.mapData[i][1]][3]/2-holdbackPos[gda.mapData[i][1]][1]);
}
}
}
}
//雪人
for(i=0;i<gda.maxSnowMan;i++) {
if(gda.snowMan[i][0]!=(byte)0xFF) {
if((gda.snowMan[i][1]+gda.snowMan[i][2]*128)*16-gda.winX>-32 && (gda.snowMan[i][1]+gda.snowMan[i][2]*128)*16-gda.winX<160) {
if(gda.snowManS[i][1]==99) {
g.drawImage(snowManImg[0],0+(gda.snowMan[i][1]+gda.snowMan[i][2]*128)*16-gda.winX,0+gda.snowMan[i][3]*8);
} else {
g.drawImage(snowManImg[gda.snowManS[i][1]],0+(gda.snowMan[i][1]+gda.snowMan[i][2]*128)*16-gda.winX,0+gda.snowMan[i][3]*8);
}
}
}
}
//雪球
for(i=0;i<gda.maxSnowBall;i++) {
if(gda.snowBall[i][0]>0) {
if(gda.snowBall[i][1]-gda.winX>-32 && gda.snowBall[i][1]-gda.winX<160) {
////g.setClip(gda.snowBall[i][1]-gda.winX,gda.snowBall[i][2],8,8);
g.drawImage(status[0],gda.snowBall[i][1]-gda.winX,gda.snowBall[i][2]);
}
}
else if(gda.snowBall[i][0]==-2) {
if(gda.snowBall[i][1]-gda.winX>-32 && gda.snowBall[i][1]-gda.winX<160) {
////g.setClip(gda.snowBall[i][1]-gda.winX,gda.snowBall[i][2],8,8);
g.drawImage(status[1],gda.snowBall[i][1]-gda.winX,gda.snowBall[i][2]);
}
gda.snowBall[i][0]=-1;
}
else if(gda.snowBall[i][0]==-1) {
if(gda.snowBall[i][1]-gda.winX>-32 && gda.snowBall[i][1]-gda.winX<160) {
////g.setClip(gda.snowBall[i][1]-gda.winX,gda.snowBall[i][2],8,8);
g.drawImage(status[1],gda.snowBall[i][1]-gda.winX,gda.snowBall[i][2]);
}
//System.out.println("reset snow ball"+i);
gda.snowBall[i][0]=0;
gda.snowBall[i][1]=0;
gda.snowBall[i][2]=0;
}
}
//企鵝
//影子
if(!gda.gameOver && !gda.giveYellowCard) {
if(gda.mapData[pg.posX/16][0]!=(byte)0xFF) {
if(gda.mapData[pg.posX/16][1]==(byte)0x02) {
////g.setClip(pg.posX-gda.winX+4,85-3,15,5);
g.drawImage(shadow1,pg.posX-gda.winX+4,85-3);
}
}
}
if(!(gda.gameOver && gStep==5)) {
if(pg.ifSkate) {
if(gda.gameOver || gda.giveYellowCard) {
if(gStep==0) {
switch(pg.gameOverType) {
case 0: //窟窿
if(passCount>0 && pg.posY-25<96) {
////g.setClip(pg.posX-gda.winX,pg.posY-25-3,23,25-(4-passCount)*4);
g.drawImage(penguin[7+pg.status%8],pg.posX-gda.winX,pg.posY-25-3);
}
break;
case 1: //落水
if(passCount>0 && pg.posY-25<96) {
////g.setClip(pg.posX-gda.winX,pg.posY-25,23,25-(4-passCount)*4);
g.drawImage(penguin[7+pg.status%8],pg.posX-gda.winX,pg.posY-25);
}
if(waterFlg) {
//g.drawImage(water1,pg.posX-gda.winX+1,pg.stepY-2);
////g.setClip(0+pg.posX-gda.winX+1,pg.stepY-2,4,12);
//g.drawImage(water,pg.posX-gda.winX-11,pg.stepY-2-4);
////g.setClip(0+pg.posX-gda.winX+5,pg.stepY-2,16,12);
//g.drawImage(water,pg.posX-gda.winX+5,pg.stepY-2-4);
////g.setClip(0+pg.posX-gda.winX+21,pg.stepY-2,4,12);
//g.drawImage(water,pg.posX-gda.winX+21,pg.stepY-2-4);
} else {
//g.drawImage(water1,pg.posX-gda.winX+1,pg.stepY-2);
////g.setClip(0+pg.posX-gda.winX+1,pg.stepY-2,4,12);
//g.drawImage(water,pg.posX-gda.winX-11-16,pg.stepY-2-4);
////g.setClip(0+pg.posX-gda.winX+5,pg.stepY-2,16,12);
//g.drawImage(water,pg.posX-gda.winX+5-16,pg.stepY-2-4);
////g.setClip(0+pg.posX-gda.winX+21,pg.stepY-2,4,12);
//g.drawImage(water,pg.posX-gda.winX+21-16,pg.stepY-2-4);
}
break;
case 2:
case 3:
case 4:
////g.setClip(pg.posX-gda.winX,pg.posY-25,23,25);
g.drawImage(penguin[7+pg.status%8],pg.posX-gda.winX,pg.posY-25-25);
break;
}
}
else if(gStep>2) {
if(pg.flashCount>0 && pg.flashCount%2==0) {
if(pg.onFltIce) {
////g.setClip(pg.posX-gda.winX,pg.posY-25+pg.fltIceT%2,23,25);
g.drawImage(penguin[7+pg.status%8],pg.posX-gda.winX,pg.posY-25+pg.fltIceT%2);
} else {
////g.setClip(pg.posX-gda.winX,pg.posY-25,23,25);
g.drawImage(penguin[7+pg.status%8],pg.posX-gda.winX,pg.posY-25);
}
}
}
} else {
if(pg.onFltIce) {
////g.setClip(pg.posX-gda.winX,pg.posY-25+pg.fltIceT%2,23,25);
g.drawImage(penguin[7+pg.status%8],pg.posX-gda.winX,pg.posY-25+pg.fltIceT%2);
} else {
////g.setClip(pg.posX-gda.winX,pg.posY-25,23,25);
g.drawImage(penguin[7+pg.status%8],pg.posX-gda.winX,pg.posY-25);
}
}
} else {
if(gda.gameOver || gda.giveYellowCard) {
if(gStep==0) {
switch(pg.gameOverType) {
case 0: //窟窿
if(passCount>0 && pg.posY-25<96) {
if(pg.goBack) {
////g.setClip(pg.posX-gda.winX,pg.posY-25-3,23,25-(4-passCount)*4);
g.drawImage(penguin[14+pg.status],pg.posX-gda.winX,pg.posY-25-4);
} else {
////g.setClip(pg.posX-gda.winX,pg.posY-25-3,23,25-(4-passCount)*4);
g.drawImage(penguin[pg.status],pg.posX-gda.winX,pg.posY-25-3);
}
}
break;
case 1: //落水
if(passCount>0 && pg.posY-25<96) {
if(pg.goBack) {
////g.setClip(pg.posX-gda.winX,pg.posY-25,23,25-(4-passCount)*4);
g.drawImage(penguin[14+pg.status],pg.posX-gda.winX,pg.posY-25);
} else {
////g.setClip(pg.posX-gda.winX,pg.posY-25,23,25-(4-passCount)*4);
g.drawImage(penguin[pg.status],pg.posX-gda.winX,pg.posY-25);
}
}
if(waterFlg) {
//g.drawImage(water1,pg.posX-gda.winX+1,pg.stepY-2);
////g.setClip(0+pg.posX-gda.winX+1,pg.stepY-2,4,12);
//g.drawImage(water,pg.posX-gda.winX-11,pg.stepY-2-4);
////g.setClip(0+pg.posX-gda.winX+5,pg.stepY-2,16,12);
//g.drawImage(water,pg.posX-gda.winX+5,pg.stepY-2-4);
////g.setClip(0+pg.posX-gda.winX+21,pg.stepY-2,4,12);
//g.drawImage(water,pg.posX-gda.winX+21,pg.stepY-2-4);
} else {
// g.drawImage(water1,pg.posX-gda.winX-11,pg.stepY-2);
//g.drawImage(water1,pg.posX-gda.winX-11,pg.stepY-2);
////g.setClip(0+pg.posX-gda.winX+1,pg.stepY-2,4,12);
//g.drawImage(water,pg.posX-gda.winX-11-16,pg.stepY-2-4);
////g.setClip(0+pg.posX-gda.winX+5,pg.stepY-2,16,12);
//g.drawImage(water,pg.posX-gda.winX+5-16,pg.stepY-2-4);
////g.setClip(0+pg.posX-gda.winX+21,pg.stepY-2,4,12);
//g.drawImage(water,pg.posX-gda.winX+21-16,pg.stepY-2-4);
}
break;
case 2:
case 3:
case 4:
if(pg.goBack) {
////g.setClip(pg.posX-gda.winX,pg.posY-25,23,25);
g.drawImage(penguin[14+pg.status],pg.posX-gda.winX,pg.posY-25);
} else {
////g.setClip(pg.posX-gda.winX,pg.posY-25,23,25);
g.drawImage(penguin[pg.status],pg.posX-gda.winX,pg.posY-25);
}
break;
}
}
else if(gStep>2) {
if(pg.flashCount>0 && pg.flashCount%2==0) {
if(pg.onFltIce) {
////g.setClip(pg.posX-gda.winX,pg.posY-25+pg.fltIceT%2,23,25);
if(pg.goBack) {
g.drawImage(penguin[14+pg.status],pg.posX-gda.winX,pg.posY-25+pg.fltIceT%2);
} else {
g.drawImage(penguin[pg.status],pg.posX-gda.winX,pg.posY-25+pg.fltIceT%2);
}
} else {
////g.setClip(pg.posX-gda.winX,pg.posY-25,23,25);
if(pg.goBack) {
g.drawImage(penguin[14+pg.status],pg.posX-gda.winX,pg.posY-25);
} else {
g.drawImage(penguin[pg.status],pg.posX-gda.winX,pg.posY-25);
}
}
}
}
} else {
if(pg.onFltIce) {
////g.setClip(pg.posX-gda.winX,pg.posY-25+pg.fltIceT%2,23,25);
if(pg.goBack) {
g.drawImage(penguin[14+pg.status],pg.posX-gda.winX,pg.posY-25+pg.fltIceT%2);
} else {
g.drawImage(penguin[pg.status],pg.posX-gda.winX,pg.posY-25+pg.fltIceT%2);
}
} else {
////g.setClip(pg.posX-gda.winX,pg.posY-25,23,25);
if(pg.goBack) {
g.drawImage(penguin[14+pg.status],pg.posX-gda.winX,pg.posY-25);
} else {
g.drawImage(penguin[pg.status],pg.posX-gda.winX,pg.posY-25);
}
}
}
}
}
///按鍵標誌
if(keyupFlg) {
//if(!pg.ifFlying) {
//pg.jump(); //為了和指示相對應,把資料處理移進來
g.setColor(g.getColorOfRGB(0,0,0));
//} else {
// g.setColor(g.getColorOfRGB(0xA4,0xA4,0xA4));
//}
//g.setClip(9,107,5,5);
g.fillRect(9,107,5,5);
keyupFlg=false;
} else {
g.setColor(g.getColorOfRGB(0xA4,0xA4,0xA4));
//g.setClip(9,107,5,5);
g.fillRect(9,107,5,5);
}
if(keydownFlg) {
//if(!pg.ifFlying) {
g.setColor(g.getColorOfRGB(0,0,0));
//} else {
// g.setColor(g.getColorOfRGB(0xA4,0xA4,0xA4));
//}
//g.setClip(9,120,5,5);
g.fillRect(9,120,5,5);
keydownFlg=false;
} else {
g.setColor(g.getColorOfRGB(0xA4,0xA4,0xA4));
//g.setClip(9,120,5,5);
g.fillRect(9,120,5,5);
}
if(keyleftFlg) {
//if(!pg.ifFlying) {
g.setColor(g.getColorOfRGB(0,0,0));
//} else {
// g.setColor(g.getColorOfRGB(0xA4,0xA4,0xA4));
//}
//g.setClip(2,113,5,5);
g.fillRect(2,113,5,5);
keyleftFlg=false;
} else {
g.setColor(g.getColorOfRGB(0xA4,0xA4,0xA4));
//g.setClip(2,113,5,5);
g.fillRect(2,113,5,5);
}
if(keyrightFlg) {
//if(!pg.ifFlying) {
g.setColor(g.getColorOfRGB(0,0,0));
//} else {
// g.setColor(g.getColorOfRGB(0xA4,0xA4,0xA4));
//}
//g.setClip(15,113,5,5);
g.fillRect(15,113,5,5);
keyrightFlg=false;
} else {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -