📄 gamecanvas.java
字号:
g.setColor(g.getColorOfRGB(0xA4,0xA4,0xA4));
//g.setClip(15,113,5,5);
g.fillRect(15,113,5,5);
}
//g.setClip(1,105,21,21);
g.drawImage(key,1,105);
//黃牌
//g.setClip(85,112,7,10);
if(gda.gameOver) {
g.setColor(g.getColorOfRGB(0xFF,0,0));
} else {
g.setColor(g.getColorOfRGB(0xFF,0xFF,0));
}
if(ycCnt%2==0) {
g.fillRect(85,112,7,10);
g.setColor(g.getColorOfRGB(0,0,0));
g.drawRect(85,112,6,9);
}
if(gda.gameOver) {
////g.setClip(94,113,6,7);
g.drawImage(nimg[1],94,113);
} else {
////g.setClip(94,113,6,7);
g.drawImage(nimg[gda.curYellowCard/10],94,113);
////g.setClip(100,113,6,7);
g.drawImage(nimg[gda.curYellowCard%10],100,113);
////g.setClip(106,113,6,7);
g.drawImage(nimg[10],106,113);
////g.setClip(111,113,6,7);
g.drawImage(nimg[gda.yellowCard[gda.gameLevel-1]/10],111,113);
////g.setClip(117,113,6,7);
g.drawImage(nimg[gda.yellowCard[gda.gameLevel-1]%10],117,113);
}
//速度條
for(i=0;i<(pg.velocityX+gda.worldSpeed);i++) {
////g.setClip(23+4*i,113,4,5);
g.drawImage(status[2],23+4*i,113);
}
//狀態
for(i=0;i<gda.gameLevel;i++) {
////g.setClip(2+7*i,6,6,6);
g.drawImage(status[3],2+7*i,6);
}
////g.setClip(65,3,11,13);
g.drawImage(status[4],65,3);
////g.setClip(77,6,6,7);
g.drawImage(nimg[gda.gameTime/3600/10],77,6);
////g.setClip(83,6,6,7);
g.drawImage(nimg[gda.gameTime/3600%10],83,6);
////g.setClip(90,7,4,5);
g.drawImage(status[5],90,7);
////g.setClip(95,6,6,7);
g.drawImage(nimg[gda.gameTime%3600/60/10],95,6);
////g.setClip(101,6,6,7);
g.drawImage(nimg[gda.gameTime%3600/60%10],101,6);
////g.setClip(108,7,4,5);
g.drawImage(status[5],108,7);
////g.setClip(113,6,6,7);
g.drawImage(nimg[gda.gameTime%60/10],113,6);
////g.setClip(119,6,6,7);
g.drawImage(nimg[gda.gameTime%60%10],119,6);
//drawTime(g,gda.gameTime,77,6);
}
//失敗
if(gda.gameOver || gda.giveYellowCard) {
switch(gStep) {
case 0:
break;
case 1:
if(gda.gameOver) {
g.setColor(g.getColorOfRGB(0xFF,0,0));
} else {
g.setColor(g.getColorOfRGB(0xFF,0xFF,0));
}
//g.setClip(36,20-passCount*32,60,80);
g.fillRect(36,20-passCount*32,60,80);
g.setColor(g.getColorOfRGB(0x03,0x47,0xA5));
g.drawRect(36,20-passCount*32,59,79);
break;
case 2:
if(gda.gameOver) {
g.setColor(g.getColorOfRGB(0xFF,0,0));
} else {
g.setColor(g.getColorOfRGB(0xFF,0xFF,0));
}
int tmp=0;
if(passCount>1) {
tmp=rd.nextInt()%5;
//g.setClip(34,20+tmp,64,80);
g.fillRect(34,20+tmp,64,80);
g.setColor(g.getColorOfRGB(0x03,0x47,0xA5));
g.drawRect(34,20+tmp,63,79);
} else {
tmp=0;
//g.setClip(34+passCount%2*2,20+passCount%2*2,64-passCount%2*4,80-passCount%2*4);
g.fillRect(34+passCount%2*2,20+passCount%2*2,64-passCount%2*4,80-passCount%2*4);
if((79-passCount%2*4)>0&&63-passCount%2*4>0){
g.setColor(g.getColorOfRGB(0x03,0x47,0xA5));
g.drawRect(34+passCount%2*2,20+passCount%2*2,63-passCount%2*4,79-passCount%2*4);
}
}
////g.setClip(34,20+tmp,64,80);
//g.fillRect(34,20+tmp,64,80);
//g.setColor(g.getColorOfRGB(0x03,0x47,0xA5));
//g.drawRect(34,20+tmp,63,79);
//g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
if(gda.gameOver) {
g.setColor(g.getColorOfRGB(0,0x11,255));
g.drawString("紅牌",53,32+tmp+adad);
g.setColor(g.getColorOfRGB(0xFF,0xFF,0xFF));
g.drawString("累積 x"+(gda.curYellowCard+1),41,53+tmp+adad);
g.setColor(g.getColorOfRGB(0xFF,0xFF,0));
g.fillRect(68,55+tmp,7,10);
g.setColor(g.getColorOfRGB(0,0,0));
g.drawRect(68,55+tmp,6,9);
g.setColor(g.getColorOfRGB(0,0x11,255));
g.drawString("出局!",53,75+tmp+adad);
} else {
g.setColor(g.getColorOfRGB(0,0x11,255));
g.drawString("黃牌",53,32+tmp+adad);
switch(pg.gameOverType) {
case 0:
g.setColor(g.getColorOfRGB(0xFF,0,0));
g.drawString("落水違例",41,53+tmp+adad);
g.setColor(g.getColorOfRGB(0,0x11,255));
g.drawString("強制折返",41,75+tmp+adad);
break;
case 1:
g.setColor(g.getColorOfRGB(0xFF,0,0));
g.drawString("落水違例",41,53+tmp+adad);
g.setColor(g.getColorOfRGB(0,0x11,255));
g.drawString("強制折返",41,75+tmp+adad);
break;
case 2:
g.setColor(g.getColorOfRGB(0xFF,0,0));
g.drawString("碰撞違例",41,53+tmp+adad);
g.setColor(g.getColorOfRGB(0,0x11,255));
g.drawString("強制折返",41,75+tmp+adad);
break;
case 3:
g.setColor(g.getColorOfRGB(0xFF,0,0));
g.drawString("碰撞違例",41,53+tmp+adad);
g.setColor(g.getColorOfRGB(0,0x11,255));
g.drawString("強制折返",41,75+tmp+adad);
break;
case 4:
g.setColor(g.getColorOfRGB(0xFF,0,0));
g.drawString("主動求助",41,53+tmp+adad);
g.setColor(g.getColorOfRGB(0,0x11,255));
g.drawString("返回賽點",41,75+tmp+adad);
break;
}
}
break;
case 3:
if(gda.gameOver) {
g.setColor(g.getColorOfRGB(0xFF,0,0));
} else {
g.setColor(g.getColorOfRGB(0xFF,0xFF,0));
}
//g.setClip(34,20,64,80);
g.fillRect(34,20,64,80);
g.setColor(g.getColorOfRGB(0x03,0x47,0xA5));
g.drawRect(34,20,63,79);
//g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
if(gda.gameOver) {
g.setColor(g.getColorOfRGB(0,0x11,255));
g.drawString("紅牌",53,32+adad);
g.setColor(g.getColorOfRGB(0xFF,0xFF,0xFF));
g.drawString("累積 x"+(gda.curYellowCard+1),41,53+adad);
g.setColor(g.getColorOfRGB(0xFF,0xFF,0));
g.fillRect(68,55,7,10);
g.setColor(g.getColorOfRGB(0,0,0));
g.drawRect(68,55,6,9);
g.setColor(g.getColorOfRGB(0,0x11,255));
g.drawString("出局!",53,75+adad);
} else {
g.setColor(g.getColorOfRGB(0,0x11,255));
g.drawString("黃牌",53,32+adad);
switch(pg.gameOverType) {
case 0:
g.setColor(g.getColorOfRGB(0xFF,0,0));
g.drawString("落水違例",41,53+adad);
g.setColor(g.getColorOfRGB(0,0x11,255));
g.drawString("強制折返",41,75+adad);
break;
case 1:
g.setColor(g.getColorOfRGB(0xFF,0,0));
g.drawString("落水違例",41,53+adad);
g.setColor(g.getColorOfRGB(0,0x11,255));
g.drawString("強制折返",41,75+adad);
break;
case 2:
g.setColor(g.getColorOfRGB(0xFF,0,0));
g.drawString("碰撞違例",41,53+adad);
g.setColor(g.getColorOfRGB(0,0x11,255));
g.drawString("強制折返",41,75+adad);
break;
case 3:
g.setColor(g.getColorOfRGB(0xFF,0,0));
g.drawString("碰撞違例",41,53+adad);
g.setColor(g.getColorOfRGB(0,0x11,255));
g.drawString("強制折返",41,75+adad);
break;
case 4:
g.setColor(g.getColorOfRGB(0xFF,0,0));
g.drawString("主動求助",41,53+adad);
g.setColor(g.getColorOfRGB(0,0x11,255));
g.drawString("返回賽點",41,75+adad);
break;
}
}
break;
case 4:
if(gda.gameOver) {
g.setColor(g.getColorOfRGB(0xFF,0,0));
} else {
g.setColor(g.getColorOfRGB(0xFF,0xFF,0));
}
//g.setClip(35+(4-passCount)*14,22+(4-passCount)*25,60-(4-passCount)*15,80-(4-passCount)*20);
g.fillRect(35+(4-passCount)*14,22+(4-passCount)*25,60-(4-passCount)*15,80-(4-passCount)*20);
if(59-(4-passCount)*15>0&&79-(4-passCount)*20>0){
g.setColor(g.getColorOfRGB(0x03,0x47,0xA5));
g.drawRect(35+(4-passCount)*14,22+(4-passCount)*25,59-(4-passCount)*15,79-(4-passCount)*20);
}
break;
case 5:
break;
}
}
if(pg.showTipInfo) {
switch(gStep) {
case 0:
if(pg.tipInfoType==2) {
//g.setClip(15,60-(4-passCount)*9,98,(4-passCount)*9*2);
g.setColor(0x00F97D19);
g.fillRect(15,60-(4-passCount)*9,98,(4-passCount)*9*2);
if((4-passCount)*9*2-1>0){
g.setColor(g.getColorOfRGB(0xFF,0,0));
g.drawRect(15,60-(4-passCount)*9,97,(4-passCount)*9*2-1);
}
} else {
//g.setClip(15,60-(4-passCount)*9,98,(4-passCount)*9*2);
g.setColor(0x00CCEEFF);
g.fillRect(15,60-(4-passCount)*9,98,(4-passCount)*9*2);
if((4-passCount)*9*2-1>0){
g.setColor(g.getColorOfRGB(0x03,0x47,0xA5));
g.drawRect(15,60-(4-passCount)*9,97,(4-passCount)*9*2-1);
}
}
break;
case 1:
if(pg.tipInfoType==2) {
//g.setClip(15,60-36,98,(9-0)*4*2);
g.setColor(0x00F97D19);
g.fillRect(15,60-(9-0)*4,98,(9-0)*4*2);
g.setColor(g.getColorOfRGB(0xFF,0,0));
g.drawRect(15,60-(9-0)*4,97,(9-0)*4*2-1);
g.setColor(0x00FF1199);
} else {
//g.setClip(15,60-36,98,(9-0)*4*2);
g.setColor(0x00CCEEFF);
g.fillRect(15,60-(9-0)*4,98,(9-0)*4*2);
g.setColor(g.getColorOfRGB(0x03,0x47,0xA5));
g.drawRect(15,60-(9-0)*4,97,(9-0)*4*2-1);
g.setColor(g.getColorOfRGB(0,0x11,255));
}
//g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
switch(pg.tipInfoType) {
case 0:
drawTipInfo(g,"可按0強行返回賽點,但將為此得到一張黃牌!",20,32);
break;
case 1:
//遊戲開始提示
drawTipInfo(g,levelTip[gda.gameLevel-1],18,32);
break;
case 2:
drawTipInfo(g,"失去浮冰,無法跳過冰海,比賽結束!",18,32);
break;
}
break;
case 2:
if(pg.tipInfoType==2) {
//g.setClip(15,24+(4-passCount)*9,98,passCount*9*2);
g.setColor(0x00F97D19);
g.fillRect(15,24+(4-passCount)*9,98,passCount*9*2);
if(passCount*9*2-1>0){
g.setColor(g.getColorOfRGB(0xFF,0,0));
g.drawRect(15,24+(4-passCount)*9,97,passCount*9*2-1);
}
} else {
//g.setClip(15,24+(4-passCount)*9,98,passCount*9*2);
g.setColor(0x00CCEEFF);
g.fillRect(15,24+(4-passCount)*9,98,passCount*9*2);
if(passCount*9*2-1>0){
g.setColor(g.getColorOfRGB(0x03,0x47,0xA5));
g.drawRect(15,24+(4-passCount)*9,97,passCount*9*2-1);
}
}
break;
}
}
}
else if(showCon==3) { //level pass
if(gStep==0) {
g.setColor(g.getColorOfRGB(118,250,255));
//g.setClip(0,0,scrW,80-passCount*10);
g.fillRect(0,0,scrW,80-passCount*10);
//g.setClip(0,128-(8-passCount)*6,scrW,48-passCount*6);
g.fillRect(0,128-(8-passCount)*6,scrW,48-passCount*6);
}
else if(gStep==1) {
g.setColor(g.getColorOfRGB(118,250,255));
//g.setClip(0,0,scrW,scrH);
g.fillRect(0,0,scrW,scrH);
if(gda.gameTime<scores[gda.gameLevel-1] || scores[gda.gameLevel-1]==0) { //good score
if(passCount>8) {
////g.setClip(100-passCount*8,60,23,25); //huai
if(passCount%2==0) {
g.drawImage(penguin[1],100-passCount*8,60);
} else {
g.drawImage(penguin[2],100-passCount*8,60);
}
} else {
if(passCount>4) {
////g.setClip(100-passCount*8,60,23,25); //huai
if(passCount%2==0) {
g.drawImage(penguin[1],100-passCount*8,60);
} else {
g.drawImage(penguin[2],100-passCount*8,60);
}
}
else {
////g.setClip(68,60,23,25); //huai
g.drawImage(penguin[1],68,60);
}
//nicle
if(passCount%2==0) {
g.drawImage(penguin[26],42-passCount*12,62);
} else {
g.drawImage(penguin[27],42-passCount*12,62);
}
}
}
else { //normal or bad score
if(passCount>8) {
////g.setClip(100-passCount*8,62,21,23); //妮可
if(passCount%2==0) {
g.drawImage(penguin[26],100-passCount*8,62);
} else {
g.drawImage(penguin[27],100-passCount*8,62);
}
} else {
if(passCount>4) {
////g.setClip(100-passCount*8,62,21,23); //妮可
if(passCount%2==0) {
g.drawImage(penguin[26],100-passCount*8,62);
} else {
g.drawImage(penguin[27],100-passCount*8,62);
}
}
else {
////g.setClip(68,62,21,23); //妮可
g.drawImage(penguin[27],68,62);
}
////g.setClip(42-passCount*12,60,23,25); //壞企鵝
if(passCount%2==0) {
g.drawImage(penguin[1],42-passCount*12,60);
} else {
g.drawImage(penguin[2],42-passCount*12,60);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -