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

📄 gamecanvas.java

📁 一款体育类手机游戏的GameCanvas源码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
								g.drawImage(menu7,37+i%3*19,68+i/3*15-addy);
								////g.setClip(39+i%3*19,70+i/3*15,6,7);
								g.drawImage(nimg[(i+1)],39+i%3*19,70+i/3*15-addy);
							}

							
							break;
						case 2:
							int tmpX=0,tmpY=0,endX=80,maxLine=6,lineNum=0,lineStep=17;
							//Font ft=Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL);
							g.setColor(g.getColorOfRGB(0,0x11,255));
							//g.setClip(0,0,scrW,scrH);
							//g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
							for(i=strPointer[page];i<helpStr.length();i++) {
								if(tmpX>=endX || helpStr.charAt(i)=='\n') {
									tmpX=0;
									lineNum+=1;
									if(helpStr.charAt(i)=='\n') {
										i++;
									}
									if(lineNum>=maxLine) {
										//helpPageNum+=1;
										//lineNum=0;
										strPointer[page+1]=(short)i;
										//System.out.println("cur helpPageNum"+helpPageNum);
										break;
									}
									//System.out.println("cur helpPageNum"+helpPageNum);
								}
								else if(i>strPointer[page]) {
									tmpX+=ft.stringWidth(""+helpStr.charAt(i-1))+1;
								}
								tmpY=lineNum*lineStep;
								//System.out.println("beginCol"+beginCol+" tmpY"+tmpY+" lineNum"+lineNum+" tmpX"+tmpX);
								g.drawString(""+helpStr.charAt(i),12+tmpX,7+tmpY+adad);
							}
							if(page>0) {
								;	//向上箭頭
								g.setColor(g.getColorOfRGB(0,0,255));
								int len=1;
								for(i=1;i<6;i++) {
									g.fillRect(65-i,110+i,len,1);
									len+=2;
								}
							}
							if(page<2) {
								;	//向下箭頭
								g.setColor(g.getColorOfRGB(0,0,255));
								int len=9;
								for(i=5;i>0;i--) {
									g.fillRect(65-i,118+(5-i),len,1);
									len-=2;
								}
							}
							break;
						case 3:

							break;
						case 4:
							//g.setClip(0,0,128,128);
							g.setColor(g.getColorOfRGB(0,0x11,255));
							//g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
							g.drawString("賽道紀錄",44,10+adad);
							if(page==0) {
								for(i=0;i<5;i++) {
									//g.setClip(17,30+i*17,50,20);
									g.setColor(g.getColorOfRGB(0x0,0x0,0x0));
									g.drawString(levelStr[i],17,30+i*17+adad);
									drawStringTime(g,scores[i],73,30+i*17);
								}
							} else {
								for(i=5;i<9;i++) {
									//g.setClip(17,30+(i-5)*17,50,20);
									g.setColor(g.getColorOfRGB(0x0,0x0,0x0));
									g.drawString(levelStr[i],17,30+(i-5)*17+adad);
									drawStringTime(g, scores[i],73,30+(i-5)*17);
								}
							}
							//g.setClip(55,110,30,20);
							if(page>0) {
								;	//向上箭頭
								g.setColor(g.getColorOfRGB(0,0,255));
								int len=1;
								for(i=1;i<6;i++) {
									g.fillRect(65-i,110+i,len,1);
									len+=2;
								}
							}
							if(page<1) {
								;	//向下箭頭
								g.setColor(g.getColorOfRGB(0,0,255));
								int len=9;
								for(i=5;i>0;i--) {
									g.fillRect(65-i,118+(5-i),len,1);
									len-=2;
								}
							}
							break;
					}
					g.drawImage(menu5,5+pg.counter%3,110);
					g.drawImage(menu6,110-pg.counter%3,110);
					
				}
			}
		}
		else if(showCon==2) {		//game start
			
			/*if(showHelp) {
				g.setColor(g.getColorOfRGB(118,250,255));
				g.fillRect(0,0,scrW,scrH);
				int tmpX=0,tmpY=0,endX=80,maxLine=6,lineNum=0,lineStep=17;
				Font ft=Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL);
				g.setColor(g.getColorOfRGB(0,0x11,255));
				//g.setClip(0,0,scrW,scrH);
				g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
				for(i=strPointer[page];i<helpStr.length();i++) {
				//for(i=0;i<helpStr.length();i++) {
					if(tmpX>=endX || helpStr.charAt(i)=='\n') {
						tmpX=0;
						lineNum+=1;
						if(helpStr.charAt(i)=='\n') {
							i++;
						}
						if(lineNum>=maxLine) {
							//helpPageNum+=1;
							//lineNum=0;
							strPointer[page+1]=(short)i;
							//System.out.println("cur helpPageNum"+helpPageNum);
							break;
						}
						//System.out.println("cur helpPageNum"+helpPageNum);
					}
					else if(i>strPointer[page]) {
						tmpX+=ft.charWidth(helpStr.charAt(i-1))+1;
					}
					tmpY=lineNum*lineStep;
					//System.out.println("beginCol"+beginCol+" tmpY"+tmpY+" lineNum"+lineNum+" tmpX"+tmpX);
					g.drawString(""+helpStr.charAt(i),12+tmpX,7+tmpY);
				}
				g.setColor(g.getColorOfRGB(0x98,0xD5,0xD9));
				g.drawString("跳過",12,111+pg.counter%2);	
				if(page>0) {
					;	//向上箭頭
					g.setColor(g.getColorOfRGB(0,0,0)FF);
					int len=1;
					for(i=1;i<6;i++) {
						g.fillRect(65-i,110+i,len,1);
						len+=2;
					}
				}
				if(page<8) {
					;	//向下箭頭
					g.setColor(g.getColorOfRGB(0,0,0)FF);
					int len=9;
					for(i=5;i>0;i--) {
						g.fillRect(65-i,118+(5-i),len,1);
						len-=2;
					}
				}
				return;
			}*/
			if(showTitle) {
				//g.setClip(0,0,scrW,scrH);
				g.setColor(g.getColorOfRGB(118,250,255));
				g.fillRect(0,0,scrW,scrH);
				g.setColor(g.getColorOfRGB(0,0x11,255));
				//g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
				g.drawString(levelStr[gda.gameLevel-1],40,30+adad);
				g.drawString("允許黃牌: "+gda.yellowCard[gda.gameLevel-1],35,58+adad);
				g.drawString("賽道路況: "+roadInfo[gda.gameLevel-1],18,85+adad);
			} else {

				//背景&默認水面
				for(i=0;i<8;i++) {

					//g.setClip(0+i*16,0,16,38);
					g.drawImage(seasky,0+i*16,0);
					if(waterFlg) {
						
						////g.setClip(0+i*16,50,16,16);
						g.drawImage(water2,0+i*16,50);
					} else {
						
						////g.setClip(0+i*16,50,16,16);
						g.drawImage(water3,0+i*16,50);
					}
				}
		
				
				//雲彩
				for(i=0;i<5;i++) {
					if(pg.cloud[i][0]==1) {
						//g.setClip(pg.cloud[i][1],pg.cloud[i][2],18,6);
						g.drawImage(cloudImg,pg.cloud[i][1],pg.cloud[i][2]);
					}
					else if(pg.cloud[i][0]==2) {
						//g.setClip(pg.cloud[i][1],pg.cloud[i][2],18,6);
						g.drawImage(cloudImg,pg.cloud[i][1],pg.cloud[i][2]);
					}
				}

				g.setColor(g.getColorOfRGB(0x66,0xFF,255));
				//g.setClip(0,64,scrW,64);
				g.fillRect(0,0+64,scrW,64);
				for(i=0;i<2;i++) {
					//g.setClip(0+i*128-gda.bgoffset,0,scrW,59);
					g.drawImage(bg,0+i*128-gda.bgoffset,0);
				}
				
				//浮冰障礙
				for(i=0;i<gda.maxFltIce-1;i++) {
					if(gda.fltIce[i][0]==3 || gda.fltIce[i][0]==4) {
						if(gda.fltIce[i][2]-gda.winX>-32 && gda.fltIce[i][2]-gda.winX<160) {
							if(i==pg.fltIceId) {
								if(gda.fltIce[i][0]==3) {
									////g.setClip(gda.fltIce[i][2]-gda.winX,gda.fltIce[i][3]+pg.fltIceT%2-holdbackPos[3][3]/2,holdbackPos[3][2],holdbackPos[3][3]);
									g.drawImage(holdbackImg[3],gda.fltIce[i][2]-gda.winX-holdbackPos[3][0],gda.fltIce[i][3]-holdbackPos[3][1]+pg.fltIceT%2-holdbackPos[3][3]/2);
								} else {
									int ox=rd.nextInt()%2;
									////g.setClip(gda.fltIce[i][2]-gda.winX,gda.fltIce[i][3]+ox-holdbackPos[4][3]/2,holdbackPos[4][2],holdbackPos[4][3]);
									g.drawImage(holdbackImg[4],gda.fltIce[i][2]-gda.winX-holdbackPos[4][0],gda.fltIce[i][3]-holdbackPos[4][1]+ox-holdbackPos[4][3]/2);
								}
							} else {
								if(gda.fltIce[i][0]==3) {
									////g.setClip(gda.fltIce[i][2]-gda.winX,gda.fltIce[i][3]-holdbackPos[3][3]/2,holdbackPos[3][2],holdbackPos[3][3]);
									g.drawImage(holdbackImg[3],gda.fltIce[i][2]-gda.winX-holdbackPos[3][0],gda.fltIce[i][3]-holdbackPos[3][1]-holdbackPos[3][3]/2);
								} else {
									int ox=rd.nextInt()%2;
									////g.setClip(gda.fltIce[i][2]-gda.winX,gda.fltIce[i][3]-holdbackPos[4][3]/2+ox,holdbackPos[4][2],holdbackPos[4][3]);
									g.drawImage(holdbackImg[4],gda.fltIce[i][2]-gda.winX-holdbackPos[4][0],gda.fltIce[i][3]-holdbackPos[4][1]-holdbackPos[4][3]/2+ox);
								}
							}
						}
					}
					else if(gda.fltIce[i][0]==99) {
						if(gda.fltIce[i][1]==3) {
							if(gda.fltIce[i][2]-gda.winX>-32 && gda.fltIce[i][2]-gda.winX<160) {
								////g.setClip(gda.fltIce[i][2]-gda.winX,gda.fltIce[i][3]+pg.fltIceT%2-holdbackPos[4][3]/2,holdbackPos[4][2],holdbackPos[4][3]);
								g.drawImage(holdbackImg[4],gda.fltIce[i][2]-gda.winX-holdbackPos[4][0],gda.fltIce[i][3]-holdbackPos[4][1]+pg.fltIceT%2-holdbackPos[4][3]/2);
							}
							gda.fltIce[i][1]-=1;
						}
						else if(gda.fltIce[i][1]==2) {
							if(gda.fltIce[i][2]-gda.winX>-32 && gda.fltIce[i][2]-gda.winX<160) {
								////g.setClip(gda.fltIce[i][2]-gda.winX,gda.fltIce[i][3]+pg.fltIceT%2-22/2,41,22);
								g.drawImage(holdbackImg[6],gda.fltIce[i][2]-gda.winX,gda.fltIce[i][3]+pg.fltIceT%2-22/2);
							}
							gda.fltIce[i][1]-=1;
						}
						else if(gda.fltIce[i][1]==1) {
							if(gda.fltIce[i][2]-gda.winX>-32 && gda.fltIce[i][2]-gda.winX<160) {
								////g.setClip(gda.fltIce[i][2]-gda.winX,gda.fltIce[i][3]+pg.fltIceT%2-22/2,41,22);
								g.drawImage(holdbackImg[6],gda.fltIce[i][2]-gda.winX,gda.fltIce[i][3]+pg.fltIceT%2-22/2);
							}
							gda.fltIce[i][1]-=1;
						}
						else if(gda.fltIce[i][1]==0) {
							gda.fltIce[i][0]=0;
							gda.fltIce[i][1]=0;
							gda.fltIce[i][2]=0;
							gda.fltIce[i][3]=0;
						}
					}
				}

				//地面
				for(i=0;i<gda.colNum;i++) {
					if(gda.mapData[i][0]!=(byte)0xFF) {
						if(0+i*16-gda.winX>=-32 && 0+i*16-gda.winX<160) {
							//g.setClip(0+i*16-gda.winX,groundY,16,(128-groundY));
							if(gda.mapData[i][0]==(byte)0x00) {
								//g.drawImage(snow,0+i*16-gda.winX,0+groundY);
								if(i>1 && gda.mapData[i-1][0]!=(byte)0x00) {
									g.drawImage(snow,0+i*16-gda.winX,0+groundY);
								}
								else if(i<gda.colNum-1 && gda.mapData[i+1][0]!=(byte)0x00) {
									g.drawImage(snow,0+i*16-gda.winX-32,0+groundY);
								}
								else {
									g.drawImage(snow,0+i*16-gda.winX-16,0+groundY);
								}
							} else {
								if(i>1 && gda.mapData[i-1][0]!=(byte)0x01) {
									g.drawImage(ice,0+i*16-gda.winX,0+groundY);
								}
								else if(i<gda.colNum-1 && gda.mapData[i+1][0]!=(byte)0x01) {
									g.drawImage(ice,0+i*16-gda.winX-32,0+groundY);
								}
								else {
									g.drawImage(ice,0+i*16-gda.winX-16,0+groundY);
								}

							}
							if(waterFlg) {
								////g.setClip(0+i*16-gda.winX,groundY+44,16,16);
								g.drawImage(water2,0+i*16-gda.winX,groundY+44);
							} else {
								////g.setClip(0+i*16-gda.winX,groundY+44,16,16);
								g.drawImage(water3,0+i*16-gda.winX,groundY+44);
							}
						}
					}
				}
				//多畫一格使效果更好
				if(0+i*16-gda.winX>=-32 && 0+i*16-gda.winX<160) {
					//g.setClip(0+i*16-gda.winX,groundY,16,(128-groundY));
					if(gda.mapData[gda.colNum-1][0]==(byte)0x00) {
						if(i>1 && gda.mapData[i-1][0]!=(byte)0x00) {
							g.drawImage(snow,0+i*16-gda.winX,0+groundY);
						}
						else if(i<gda.colNum-1 && gda.mapData[i+1][0]!=(byte)0x00) {
							g.drawImage(snow,0+i*16-gda.winX-32,0+groundY);
						}
						else {
							g.drawImage(snow,0+i*16-gda.winX-16,0+groundY);
						}
					} else {
						if(i>1 && gda.mapData[i-1][0]!=(byte)0x01) {
							g.drawImage(ice,0+i*16-gda.winX,0+groundY);
						}
						else if(i<gda.colNum-1 && gda.mapData[i+1][0]!=(byte)0x01) {
							g.drawImage(ice,0+i*16-gda.winX-32,0+groundY);
						}
						else {
							g.drawImage(ice,0+i*16-gda.winX-16,0+groundY);
						}
					}
					if(waterFlg) {
						////g.setClip(0+i*16-gda.winX,groundY+44,16,16);
						g.drawImage(water2,0+i*16-gda.winX,groundY+44);
					} else {
						////g.setClip(0+i*16-gda.winX,groundY+44,16,16);
						g.drawImage(water3,0+i*16-gda.winX,groundY+44);
					}
				}

				//近景
				for(i=0;i<gda.maxScenery;i++) {
					if(gda.scenery[i][0]!=(byte)0xFF) {
						if(0+(gda.scenery[i][1]+gda.scenery[i][2]*128)*16-gda.winX>-32 && 0+(gda.scenery[i][1]+gda.scenery[i][2]*128)*16-gda.winX<160) {
							if(gda.scenery[i][0]<2) {		//非觀眾
								////g.setClip(0+(gda.scenery[i][1]+gda.scenery[i][2]*128)*16-gda.winX,0+gda.scenery[i][3]*8,sceneryPos[gda.scenery[i][0]][2],sceneryPos[gda.scenery[i][0]][3]);
								g.drawImage(sceneryImg[0],0+(gda.scenery[i][1]+gda.scenery[i][2]*128)*16-gda.winX-sceneryPos[gda.scenery[i][0]][0],0+gda.scenery[i][3]*8-sceneryPos[gda.scenery[i][0]][1]);
							} else {				//觀眾動作
								if(gda.scenery[i][0]==(byte)0x02) {
									if(audienceFlg) {
										////g.setClip(0+(gda.scenery[i][1]+gda.scenery[i][2]*128)*16-gda.winX-3,0+gda.scenery[i][3]*8-3,sceneryPos[gda.scenery[i][0]][2],sceneryPos[gda.scenery[i][0]][3]);
										g.drawImage(sceneryImg[gda.scenery[i][0]],0+(gda.scenery[i][1]+gda.scenery[i][2]*128)*16-gda.winX-sceneryPos[gda.scenery[i][0]][0]-3,0+gda.scenery[i][3]*8-sceneryPos[gda.scenery[i][0]][1]-3);
									} else {
										////g.setClip(0+(gda.scenery[i][1]+gda.scenery[i][2]*128)*16-gda.winX-3,0+gda.scenery[i][3]*8-3,sceneryPos[gda.scenery[i][0]][2],sceneryPos[gda.scenery[i][0]][3]);
										g.drawImage(sceneryImg[gda.scenery[i][0]],0+(gda.scenery[i][1]+gda.scenery[i][2]*128)*16-gda.winX-sceneryPos[gda.scenery[i][0]][0]-sceneryPos[gda.scenery[i][0]][2]*(Math.abs(rd.nextInt())%2)-3,0+gda.scenery[i][3]*8-sceneryPos[gda.scenery[i][0]][1]-3);
									}
								} else {
									if(audienceFlg) {
										////g.setClip(0+(gda.scenery[i][1]+gda.scenery[i][2]*128)*16-gda.winX,0+gda.scenery[i][3]*8,sceneryPos[gda.scenery[i][0]][2],sceneryPos[gda.scenery[i][0]][3]);
										g.drawImage(sceneryImg[gda.scenery[i][0]],0+(gda.scenery[i][1]+gda.scenery[i][2]*128)*16-gda.winX-sceneryPos[gda.scenery[i][0]][0],0+gda.scenery[i][3]*8-sceneryPos[gda.scenery[i][0]][1]);
									} else {
										////g.setClip(0+(gda.scenery[i][1]+gda.scenery[i][2]*128)*16-gda.winX,0+gda.scenery[i][3]*8-2,sceneryPos[gda.scenery[i][0]][2],sceneryPos[gda.scenery[i][0]][3]);
										g.drawImage(sceneryImg[gda.scenery[i][0]],0+(gda.scenery[i][1]+gda.scenery[i][2]*128)*16-gda.winX-sceneryPos[gda.scenery[i][0]][0],0+gda.scenery[i][3]*8-sceneryPos[gda.scenery[i][0]][1]-sceneryPos[gda.scenery[i][0]][3]-2);
									}
								}
							}
						}
					}
				}

				//Nicle
				if(pg.posX/16>=gda.colNum-16) {
					if(audienceFlg) {
						g.drawImage(penguin[23],(gda.colNum-4)*16-gda.winX,60);
					} else {
						g.drawImage(penguin[23+(Math.abs(rd.nextInt())%2)],(gda.colNum-4)*16-gda.winX,60);
					}
				}

				//賽點
				for(i=0;i<8;i++) {
					if(gda.checkPoint[gda.gameLevel-1][i]!=-1) {
						if(gda.checkPoint[gda.gameLevel-1][i]*16-gda.winX>-32 && gda.checkPoint[gda.gameLevel-1][i]*16-gda.winX<160) {
							////g.setClip(gda.checkPoint[gda.gameLevel-1][i]*16-gda.winX+8,65,14,19);
							g.drawImage(sceneryImg[0],gda.checkPoint[gda.gameLevel-1][i]*16-gda.winX+8,65);
							////g.setClip(gda.checkPoint[gda.gameLevel-1][i]*16-gda.winX+10+8,71,6,7);
							g.drawImage(nimg[(i+1)],gda.checkPoint[gda.gameLevel-1][i]*16-gda.winX+10+8,71);
						}
					}
				}

				//影子
				if(!gda.gameOver && !gda.giveYellowCard) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -