⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gamecanvas.java

📁 一款体育类手机游戏的GameCanvas源码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
					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 + -