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

📄 gamecanvas.java

📁 横屏移动地图移动和人物移动横屏幕的移动初级作品
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
							//System.out.println("draw bomb gda.bombing");							imgNum=28;							imgY=gda.manBeginY-picsPos[imgNum][4]+1;							switch(gda.bombState) {								case 0:									//System.out.println("draw bomb:0");									for(j=-2;j<3;j++) {										g.setClip((i+j)*stepW-bx,imgY,picsPos[imgNum][3],picsPos[imgNum][4]);										g.drawImage(midPic,(i+j)*stepW-picsPos[imgNum][1]-bx,imgY-picsPos[imgNum][2],											Graphics.TOP|Graphics.LEFT);										bombX=ra.nextInt()%4;										bombY=ra.nextInt()%8;										g.setClip((i+j)*stepW-bx+bombX,imgY-4+bombY,picsPos[imgNum][3],picsPos[imgNum][4]);										g.drawImage(midPic,(i+j)*stepW-picsPos[imgNum][1]-bx+bombX,imgY-4-picsPos[imgNum][2]+bombY,											Graphics.TOP|Graphics.LEFT);										//checkNormalBomb(gda.bombingNu+j);										//if(gda.bombingNu+j>0 && gda.bombingNu+j<gda.colNu) {										//	checkNormalBomb(gda.bombingNu+j);										//}									}									break;								case 1:									//System.out.println("draw bomb:1");									for(j=-1;j<2;j++) {										g.setClip((i+j)*stepW-bx,imgY,picsPos[imgNum][3],picsPos[imgNum][4]);										g.drawImage(midPic,(i+j)*stepW-picsPos[imgNum][1]-bx,imgY-picsPos[imgNum][2],											Graphics.TOP|Graphics.LEFT);										bombX=ra.nextInt()%4;										bombY=ra.nextInt()%8;										g.setClip((i+j)*stepW-bx+bombX,imgY-4+bombY,picsPos[imgNum][3],picsPos[imgNum][4]);										g.drawImage(midPic,(i+j)*stepW-picsPos[imgNum][1]-bx+bombX,imgY-4-picsPos[imgNum][2]+bombY,											Graphics.TOP|Graphics.LEFT);										//if(gda.bombingNu+j>0 && gda.bombingNu+j<gda.colNu) {										//	checkNormalBomb(gda.bombingNu+j);										//}										//checkNormalBomb(gda.bombingNu+j);									}									bombX=ra.nextInt()%8;									bombY=ra.nextInt()%8;									g.setClip(i*stepW-bx+bombX-4,imgY-12+bombY,picsPos[imgNum][3],picsPos[imgNum][4]);									g.drawImage(midPic,i*stepW-picsPos[imgNum][1]-bx+bombX-4,imgY-12-picsPos[imgNum][2]+bombY,											Graphics.TOP|Graphics.LEFT);									g.setClip(i*stepW-bx,imgY,picsPos[imgNum][3],picsPos[imgNum][4]);									g.drawImage(midPic,i*stepW-picsPos[imgNum][1]-bx,imgY-picsPos[imgNum][2],											Graphics.TOP|Graphics.LEFT);									bombX=ra.nextInt()%8;									bombY=ra.nextInt()%8;									g.setClip(i*stepW-bx+bombX+4,imgY-12+bombY,picsPos[imgNum][3],picsPos[imgNum][4]);									g.drawImage(midPic,i*stepW-picsPos[imgNum][1]-bx+bombX+4,imgY-12-picsPos[imgNum][2]+bombY,											Graphics.TOP|Graphics.LEFT);									break;								case 2:									//System.out.println("draw bomb:2");									g.setClip(i*stepW-bx,imgY,picsPos[imgNum][3],picsPos[imgNum][4]);									g.drawImage(midPic,i*stepW-picsPos[imgNum][1]-bx,imgY-picsPos[imgNum][2],											Graphics.TOP|Graphics.LEFT);									bombX=ra.nextInt()%8;									bombY=ra.nextInt()%8;									g.setClip(i*stepW-bx+bombX,imgY+bombY,picsPos[imgNum][3],picsPos[imgNum][4]);									g.drawImage(midPic,i*stepW-picsPos[imgNum][1]-bx+bombX,imgY-picsPos[imgNum][2]+bombY,											Graphics.TOP|Graphics.LEFT);									gda.mapData[bi+i][5]=(byte)0xFF;									gda.mapData[bi+i][6]=(byte)0xFF;									gda.bombing=false;									gda.bombState=0;									for(j=1;j<4;j++) {										if(bi+i+j>0 && bi+i+j<gda.colNu) {											gda.checkNormalBomb(bi+i+j);										}									}																		break;							}						} else {							//System.out.println("draw bomb at"+(bi+i));							imgNum=gda.mapData[bi+i][5];							imgY=gda.manBeginY-picsPos[imgNum][4]+1;							j=gda.bombStatus[bi+i];														if(j==100) {								j=3;							}							if(bi+i+1<gda.colNu-1 && gda.mapData[bi+i][5]==(byte)0x02 && gda.mapData[bi+i+1][5]!=(byte)0xFF) {								g.setClip(i*stepW-bx,imgY,picsPos[imgNum][3],picsPos[imgNum][4]);								g.drawImage(midPic,i*stepW-picsPos[imgNum][1]-bx-j*16,imgY-picsPos[imgNum][2],											Graphics.TOP|Graphics.LEFT);							} else {								g.setClip(i*stepW-bx,imgY,picsPos[imgNum][3],picsPos[imgNum][4]);								g.drawImage(midPic,i*stepW-picsPos[imgNum][1]-bx-j*16,imgY-picsPos[imgNum][2],											Graphics.TOP|Graphics.LEFT);							}						}					}				}			}			///画临时的网格			g.setClip(0,0,128,128);			g.setColor(0x00333333);			for(i=1;i<16;i++) {				g.drawLine(i*8,0,i*8,128);			}			/////画状态栏			g.setClip(1,4,20,20);			g.drawImage(status,1,4,Graphics.TOP|Graphics.LEFT);			g.setColor(0x00FF0000);			g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_BOLD,Font.SIZE_SMALL));			g.setClip(20,7,20,20);			g.drawString("x "+blackMan.manNum,20,7,Graphics.TOP|Graphics.LEFT);			g.setClip(38,6,16,16);			g.drawImage(status,18,6,Graphics.TOP|Graphics.LEFT);			g.setClip(55,7,20,20);			g.drawString("x "+blackMan.appleBombNum,55,7,Graphics.TOP|Graphics.LEFT);			/////画血槽			i=blackMan.hp/30;			for(j=0;j<i;j++) {				g.setClip(73+j*5,10,6,7);				//g.fillRoundRect(70+j*10,10,10,3,2,2);				g.drawImage(status,73+j*5-36,9,Graphics.TOP|Graphics.LEFT);			}			////画苹果炸弹爆炸倒计时						if(gda.putBombOk) {				g.setColor(0x00FF0000);				g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_BOLD,Font.SIZE_SMALL));				i=gda.appleBombX-blackMan.mapPosX/stepW;				imgY=gda.manBeginY-picsPos[imgNum][4]+2-15-gda.appleStrY;				g.setClip(i*stepW+4,imgY,25,25);				g.drawString(""+gda.bombCount,i*stepW+4,imgY,Graphics.TOP|Graphics.LEFT);				if(gda.bombCount==0) {		//苹果炸弹爆炸					imgNum=28;					imgY=gda.manBeginY-picsPos[imgNum][4]+2;					i=gda.appleBombX-blackMan.mapPosX/stepW;					//PlaySound.bomb();					switch(gda.appleBombState) {						case 0:							for(j=-1;j<3;j++) {								g.setClip((i+j)*stepW-bx,imgY,picsPos[imgNum][3],picsPos[imgNum][4]);								g.drawImage(midPic,(i+j)*stepW-picsPos[imgNum][1]-bx,imgY-picsPos[imgNum][2],										Graphics.TOP|Graphics.LEFT);								bombX=ra.nextInt()%4;								bombY=ra.nextInt()%8;								g.setClip((i+j)*stepW-bx+bombX,imgY-4+bombY,picsPos[imgNum][3],picsPos[imgNum][4]);								g.drawImage(midPic,(i+j)*stepW-picsPos[imgNum][1]-bx+bombX,imgY-4-picsPos[imgNum][2]+bombY,										Graphics.TOP|Graphics.LEFT);								if(gda.appleBombX+j>0 && gda.appleBombX+j<gda.colNu) {									gda.checkAppleBomb(gda.appleBombX+j);								}								gda.mapData[gda.appleBombX][5]=(byte)0xFF;								gda.mapData[gda.appleBombX][6]=(byte)0xFF;							}							break;						case 1:							break;						case 2:							gda.checkAppleBomb(gda.appleBombX);							gda.putBombOk=false;							gda.bombing=false;							gda.mapData[gda.appleBombX][5]=(byte)0xFF;							gda.mapData[gda.appleBombX][6]=(byte)0xFF;							gda.appleBombState=0;							break;					}				}			}			///////////////////////////////////画苹果炸弹						if(showMenuFlag) {				drawMenu(g);			}			//////////////////////////////////			}		//end of if(showTitle)		}		if(showCon==3) {		//画过关画面			//g.drawString("hhhhhhhhh",20,50,Graphics.TOP|Graphics.LEFT);			//gda.reset();			//showCon=2;			drawPass(g);		}		if(showCon==4) {		//画个game over的画面			if(colW<5) {				drawPass(g);			} else {				g.setClip(0,0,srcW,srcH);				g.setColor(0x00FFFFFF);				g.drawString("失败了,再来一次吧",10,10,Graphics.TOP|Graphics.LEFT);			}		}		if(showCon==5) {		//画个通关的画面			if(colW<5) {				drawPass(g);			} else {				g.setClip(0,0,srcW,srcH);				g.setColor(0x00FFFFFF);				g.drawString("任务完成,厉害",10,10,Graphics.TOP|Graphics.LEFT);			}		}		/////////////////////////////////////////////////////////	}	////////////////////////////////////////////////////////////////////////////////////////////////	public void drawMenu(Graphics g) {				//画游戏菜单	///////////////////////////////////////////////////////////////////////////////////////////////		myGraphic=g;		int i,j;				if(showMenuFlag) {		//画菜单			g.setClip(10,10,100,100);			g.drawImage(grid,10,10,Graphics.TOP|Graphics.LEFT);			//g.setColor(0x00AA8800);			//g.fillRect(10,10,108,108);			if(menuClass==0) {				//一级菜单				for(i=0;i<menuStr.length;i++) {					if(menuItemId==i) {						//g.setColor(0x00222222);						g.setClip(10,10+20*i,100,20);						g.drawImage(menuItem,10,10+20*i,Graphics.TOP|Graphics.LEFT);					}					g.setColor(0x000000);					g.setClip(10,10+20*i,100,20);					g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));					g.drawString(menuStr[i],10,10+i*20,Graphics.TOP|Graphics.LEFT);				}			} else {				///二级菜单				switch(menuItemId) {					case 1:					case 2:						showHelp=true;						//g.setClip(20,20,136,168);						//g.fillRect(20,20,136,168);						int tmpX=0,tmpY=0,endX=110,maxLine=5,lineNum=0,lineStep=20;						Font ft=Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL);						g.setColor(0x00000000);						g.setClip(0,0,srcW,srcH);						g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));						for(i=strPointer[page];i<helpStr.length();i++) {							if(tmpX>=endX) {								tmpX=0;								lineNum+=1;								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(helpStr.charAt(i)=='\n') {								tmpX=0;								lineNum+=1;								if(lineNum>=maxLine) {									//helpPageNum+=1;									//lineNum=0;									strPointer[page+1]=(short)i;									//System.out.println("cur helpPageNum"+helpPageNum+"curPage"+page);									break;								}								//System.out.println("cur helpPageNum"+helpPageNum);								continue;								//if(lineNum>=maxLine) {								//	strPointer								//;							}							else {								if(i>0) {									tmpX+=ft.charWidth(helpStr.charAt(i-1))+1;								} else {									tmpX=ft.charWidth(helpStr.charAt(i));								}							}										tmpY=lineNum*lineStep;							//System.out.println("beginCol"+beginCol+" tmpY"+tmpY+" lineNum"+lineNum+" tmpX"+tmpX);							g.drawString(""+helpStr.charAt(i),10+tmpX,10+tmpY+beginCol*lineStep,Graphics.TOP|Graphics.LEFT);							//g.drawString("look look hh",35,45,Graphics.TOP|Graphics.LEFT);		//替换成写帮助字串							g.drawString("返回...",100,100,Graphics.TOP|Graphics.LEFT);													}												break;					case 3:				//sound control						g.setColor(0x00FFFFFF);						g.setClip(0,0,srcW,srcH);						g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));						g.drawString("音量控制",20,10,Graphics.TOP|Graphics.LEFT);						//g.setColor(0x0000FF00);						g.drawRect(25,45,80,10);						int strollW=100/soundMaxVar*soundVar;						g.setColor(0x00CDCDDD);						g.fillRect(36,76,strollW-1,9);						g.setColor(0x00FFFFFF);						g.drawString(soundVar+"/"+soundMaxVar,70,105,Graphics.TOP|Graphics.LEFT);												g.drawString("返回...",120,159,Graphics.TOP|Graphics.LEFT);						break;				}			}					}		/////////////////////////////////////////////////////////////////////////////////////	}	public void drawPass(Graphics g) {		myGraphic=g;		int i;		g.setColor(0x00000000);		for(i=0;i<32;i++) {			g.fillRect(i*4,0,colW,128);		}		clearKey();	}	public void clearKey() {		keyup=false;		keyup1=false;		keydown=false;		keydown1=false;		keyleft=false;		keyleft1=false;		keyright=false;		keyright1=false;		keyfire=false;		keyfire1=false;		//keyTouched=false;		keyRightFunc=false;			//右功能键		manWait=false;			//走路停止后主角停止休息标记	}	public void keyPressed(int keyCode) {		//System.out.println("key pressed!");		//clearKey();		keyTouched=true;		int action = getGameAction(keyCode);		if(keyCode==-7) {			keyRightFunc=true;		}		switch (action) {			case UP:				keyup=true;				keyup1=true;				break;			case DOWN:				keydown=true;				keydown1=true;				break;			case LEFT:				keyleft=true;				keyleft1=true;				break;			case RIGHT:				keyright=true;				keyright1=true;				break;			case FIRE:				keyfire=true;				keyfire1=true;				break;			case KEY_NUM0:				break;			case KEY_NUM9:					}	}	public void keyReleased(int keyCode) {		int action = getGameAction(keyCode);		switch (action) {			case UP:				keyup=false;				break;			case DOWN:				keydown=false;				break;			case LEFT:				keyleft=false;				manWait=true;				break;			case RIGHT:				keyright=false;				manWait=true;				break;			case FIRE:				keyfire=false;				manWait=true;				break;			case KEY_NUM0:				break;			case KEY_NUM9:					}	}	public void keyRepeated(int keyCode){		keyPressed(keyCode);    }	}

⌨️ 快捷键说明

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