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

📄 gamecanvas.java

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