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

📄 gamecanvas.java

📁 一个以音乐为主题的杀怪手机游戏
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
/*右 7 */{-25,-50,65,50,-259, 0}, //被打*
/*右 8 */{-25,-50,72,50,-324, 0},  //死亡瞬间     
     
/*左 9 */{-33,-50,64,50,-332,-60}, //走
/*左10 */{-34,-45,72,50,-260,-60},  //走
/*左11 */{-27,-51,60,51,-49, -60}, //*跳1
/*左12 */{-33,-50,63,50,-137,-60},  //*跳2
/*左13 */{-33,-50,64,50,-332,-60},//走*
/*左14 */{-39,-50,65,50,-72, -60},  //攻击(0.5)
/*左15 */{-39,-50,65,50,-72, -60},//攻击(1)*
/*左16 */{-39,-50,65,50,-72, -60},//被打*
/*左17 */{-37,-50,72,51,0,   -60} //死亡瞬间

};

//------------- 变异前 -------------------
public int[][] enemyActionData_12 = {
/*右 0 */{-13,-43,23,43,-614,-20},//走
/*右 1 */{-13,-43,25,43,-637,-20},
/*右 2 */{-28,-54,25,43,-23,-20},//*跳1
/*右 3 */{-26,-50,63,50,-196, 0},//*跳2
/*右 4 */{-13,-41,29,41,-105,-47},//*
/*右 5 */{-13,-43,25,43,-637,-20}, //攻击(0.5)
/*右 6 */{-18,-43,30,43,-687,-21}, //攻击(1)
/*右 7 */{-7, -39,26,39,-717,-26}, //被打*
/*右 8 */{-7, -39,26,39,-743,-27},  //死亡瞬间     
     
/*左 9 */{-10,-43,23,43,-769,-67}, //走
/*左10 */{-34,-45,25,43,-260,-60},  //走
/*左11 */{-27,-51,60,51,-49, -60}, //*跳1
/*左12 */{-33,-50,63,50,-137,-60},  //*跳2
/*左13 */{-17,-41,29,44,-99,  0},//走*
/*左14 */{-39,-50,65,50,-72, -60},  //攻击(0.5)
/*左15 */{-31,-40,43,50,-137, 0},//攻击(1)*
/*左16 */{-10,-45,32,49,-180, 0},//被打*
/*左17 */{-37,-50,72,51,0,  -60} //死亡瞬间

};
//------------- 变异后 -------------------
public int[][] enemyActionData_12a = {
/*右 0 */{-13,-43,23,43,-614,-20},//走
/*右 1 */{-13,-43,25,43,-637,-20},
/*右 2 */{-28,-54,25,43,-23,-20},//*跳1
/*右 3 */{-26,-50,63,50,-196, 0},//*跳2
/*右 4 */{-13,-41,29,41,-105,-47},//*
/*右 5 */{-13,-43,25,43,-637,-20}, //攻击(0.5)
/*右 6 */{-18,-43,30,43,-687,-21}, //攻击(1)
/*右 7 */{-7, -39,26,39,-717,-26}, //被打*
/*右 8 */{-7, -39,26,39,-743,-27},  //死亡瞬间     
     
/*左 9 */{-10,-43,23,43,-769,-67}, //走
/*左10 */{-34,-45,25,43,-260,-60},  //走
/*左11 */{-27,-51,60,51,-49, -60}, //*跳1
/*左12 */{-33,-50,63,50,-137,-60},  //*跳2
/*左13 */{-17,-41,29,44,-99,  0},//走*
/*左14 */{-39,-50,65,50,-72, -60},  //攻击(0.5)
/*左15 */{-31,-40,43,50,-137, 0},//攻击(1)*
/*左16 */{-10,-45,32,49,-180, 0},//被打*
/*左17 */{-37,-50,72,51,0,  -60} //死亡瞬间

};
//------------- 漂浮的M -------------------
public int[][] enemyActionData_14 = {
/*右 0 */{-13,-43,23,43,-614,-20},//走
/*右 1 */{-13,-43,25,43,-637,-20},
/*右 2 */{-28,-54,25,43,-23,-20},//*跳1
/*右 3 */{-26,-50,63,50,-196, 0},//*跳2
/*右 4 */{-13,-41,29,41,-105,-47},//*
/*右 5 */{-13,-43,25,43,-637,-20}, //攻击(0.5)
/*右 6 */{-18,-43,30,43,-687,-21}, //攻击(1)
/*右 7 */{-7, -39,26,39,-717,-26}, //被打*
/*右 8 */{-7, -39,26,39,-743,-27},  //死亡瞬间     
     
/*左 9 */{-10,-43,23,43,-769,-67}, //走
/*左10 */{-34,-45,25,43,-260,-60},  //走
/*左11 */{-27,-51,60,51,-49, -60}, //*跳1
/*左12 */{-33,-50,63,50,-137,-60},  //*跳2
/*左13 */{-17,-41,29,44,-99,  0},//走*
/*左14 */{-39,-50,65,50,-72, -60},  //攻击(0.5)
/*左15 */{-31,-40,43,50,-137, 0},//攻击(1)*
/*左16 */{-10,-45,32,49,-180, 0},//被打*
/*左17 */{-37,-50,72,51,0,  -60} //死亡瞬间

};
public int [][] enemyActionList_red  = {
	{0,1,2,3,4,3,2,1},//run_R
	{0,1,2,3,4,3,2,1},//escape_R
	{4,3},//jump_R
	{5,6,5,6},//attack_R
	{7,7,7,7,7,7,7,7},//faint_R
	{8, },//death_R
	{9,10,11,12,13,12,11,10},//run_L
	{9,10,11,12,13,12,11,10},//escape_L
	{13,12},//jump_L
	{14,15,14,15},//attack_L
	{16,16,16,16,16,16,16,16},//faint_L
	{17, }//death_L
};

public int [][] enemyActionList_xm  = {
	{0,1,2,1},//run_R
	{0,1,2,1},//escape_R
	{1},//jump_R
	{5,5},//attack_R
	{7},//faint_R
	{8},//death_R
	{9,10,11,10},//run_L
	{9,10,11,10},//escape_L
	{10},//jump_L
	{14,14},//attack_L
	{16},//faint_L
	{17}//death_L
};





class Enemy{
	public int enemyStyle = 0;
	public int enemyHealth = 0;
	public int enemySpeed; 
	public int enemyAction = enemyRun_R;
	public int enemyActionIndex = 0;
	public int enemyX = 0;
	public int enemyY = 0;
	public int enemyPosX = 0;
	public int enemyPosY = 0;
	public int enemyWidth = 12;
	public int enemyHeight = 18;
	public int[][] enemyActionData;
	public int[][] enemyActionList;
	public int enemyBulletX = -100;
     	public int enemyBulletY = -100;
     	public int enemyBulletStepX = 0;
     	public int enemyBulletStepY = 0;
     	public int enemyBulletClipWidth = 0;
     	public int enemyBulletClipHeight = 0;
     	public int enemyBulletAdd = 0;
	public int enemyFallValue = 0;
	public int enemyActionAdd = 0;
	public int enemyStateAdd = 0;
	public int enemyAttackStyle = 0;
	public boolean enemyBulleting = false;
	public Image enemyImage;
	//public Image weaponImage;
	Enemy(int style){
	      
		this.enemyStyle = style;
		switch( enemyStyle ){
			case 0:// enemyStyle 从1开始,0直接返回
				//System.out.println("  'NULL' enemy has be created!");
			break;
			case 1://红
				enemyImage = loadImage("enemy1");
				enemyHealth = 0;
				enemyNormX = 0;
				enemyNormY = 0;
				
				enemyActionData = new int[enemyActionData_1.length][6];
				for( int i = 0; i< enemyActionData_1.length; i++){
					for( int j = 0; j< enemyActionData_1[i].length; j++){
						enemyActionData[i][j] = enemyActionData_1[i][j];
					}
				}
				enemyActionList = new int[enemyActionList_red.length][8];
				for( int i = 0; i< enemyActionList_red.length; i++){
					for( int j = 0; j< enemyActionList_red[i].length; j++){
						enemyActionList[i][j] = enemyActionList_red[i][j];
					}
				}
			break;
			case 2://蓝
			     enemyImage = loadImage("enemy2");
				enemyHealth = 0;
				enemyNormX = 0;
				enemyNormY = 0;
				 
				enemyActionData = new int[enemyActionData_2.length][6];
				for( int i = 0; i< enemyActionData_2.length; i++){
					for( int j = 0; j< enemyActionData_2[i].length; j++){
						enemyActionData[i][j] = enemyActionData_2[i][j];
					}
				}
				enemyActionList = new int[enemyActionList_red.length][8];
				for( int i = 0; i< enemyActionList_red.length; i++){
					for( int j = 0; j< enemyActionList_red[i].length; j++){
						enemyActionList[i][j] = enemyActionList_red[i][j];
					}
				}
				 
			break;
			case 3://黑
				enemyImage = loadImage("enemy3");
				enemyHealth = 0;
				enemyNormX = 0;
				enemyNormY = 0;
				 
				enemyActionData = new int[enemyActionData_3.length][6];
				for( int i = 0; i< enemyActionData_3.length; i++){
					for( int j = 0; j< enemyActionData_3[i].length; j++){
						enemyActionData[i][j] = enemyActionData_3[i][j];
					}
				}
				enemyActionList = new int[enemyActionList_red.length][8];
				for( int i = 0; i< enemyActionList_red.length; i++){
					for( int j = 0; j< enemyActionList_red[i].length; j++){
						enemyActionList[i][j] = enemyActionList_red[i][j];
					}
				}
				 
			break;
			case 4://忍者
				enemyImage = loadImage("enemy4");
				enemyHealth = 0;
				enemyNormX = 0;
				enemyNormY = 0;
				
				enemyActionData = new int[enemyActionData_4.length][6];
				for( int i = 0; i< enemyActionData_4.length; i++){
					for( int j = 0; j< enemyActionData_4[i].length; j++){
						enemyActionData[i][j] = enemyActionData_4[i][j];
					}
				}
				enemyActionList = new int[enemyActionList_red.length][8];
				for( int i = 0; i< enemyActionList_red.length; i++){
					for( int j = 0; j< enemyActionList_red[i].length; j++){
						enemyActionList[i][j] = enemyActionList_red[i][j];
					}
				}
				 
			break;
			case 5://老鼠
				enemyImage = loadImage("enemy5");
				enemyHealth = 0;
				enemyNormX = 0;
				enemyNormY = 0;
				 
				enemyActionData = new int[enemyActionData_5.length][6];
				for( int i = 0; i< enemyActionData_5.length; i++){
					for( int j = 0; j< enemyActionData_5[i].length; j++){
						enemyActionData[i][j] = enemyActionData_5[i][j];
					}
				}
				enemyActionList = new int[enemyActionList_red.length][8];
				for( int i = 0; i< enemyActionList_red.length; i++){
					for( int j = 0; j< enemyActionList_red[i].length; j++){
						enemyActionList[i][j] = enemyActionList_red[i][j];
					}
				}
				 
			break;
			case 11://boss 青蛙
			     enemyImage = loadImage("enemy6");
				enemyHealth = 0;
				enemyNormX = 0;
				enemyNormY = 0;
				 
				enemyActionData = new int[enemyActionData_11.length][6];
				for( int i = 0; i< enemyActionData_11.length; i++){
					for( int j = 0; j< enemyActionData_11[i].length; j++){
						enemyActionData[i][j] = enemyActionData_11[i][j];
					}
				}
				enemyActionList = new int[enemyActionList_red.length][8];
				for( int i = 0; i< enemyActionList_red.length; i++){
					for( int j = 0; j< enemyActionList_red[i].length; j++){
						enemyActionList[i][j] = enemyActionList_red[i][j];
					}
				}
				 
			break;
			case 12://boss 变异人
			     enemyImage = loadImage("enemy7");
				enemyHealth = 0;
				enemyNormX = 0;
				enemyNormY = 0;
				 
				enemyActionData = new int[enemyActionData_12.length][6];
				for( int i = 0; i< enemyActionData_12.length; i++){
					for( int j = 0; j< enemyActionData_12[i].length; j++){
						enemyActionData[i][j] = enemyActionData_12[i][j];
					}
				}
				enemyActionList = new int[enemyActionList_red.length][8];
				for( int i = 0; i< enemyActionList_red.length; i++){
					for( int j = 0; j< enemyActionList_red[i].length; j++){
						enemyActionList[i][j] = enemyActionList_red[i][j];
					}
				}
				 
			break;
			case 13://boss 心魔
			     enemyImage = loadImage("enemy8");
				enemyHealth = 0;
				enemyNormX = 0;
				enemyNormY = 0;
				 
				enemyActionData = new int[enemyActionData_13.length][6];
				for( int i = 0; i< enemyActionData_13.length; i++){
					for( int j = 0; j< enemyActionData_13[i].length; j++){
						enemyActionData[i][j] = enemyActionData_13[i][j];
					}
				}
				enemyActionList = new int[enemyActionList_xm.length][8];
				for( int i = 0; i< enemyActionList_xm.length; i++){
					for( int j = 0; j< enemyActionList_xm[i].length; j++){
						enemyActionList[i][j] = enemyActionList_xm[i][j];
					}
				}
				 
			break;
			case 14://boss 漂浮的M
			     enemyImage = loadImage("enemy9");
				enemyHealth = 0;
				enemyNormX = 0;
				enemyNormY = 0;
				 
				enemyActionData = new int[enemyActionData_14.length][6];
				for( int i = 0; i< enemyActionData_14.length; i++){
					for( int j = 0; j< enemyActionData_14[i].length; j++){
						enemyActionData[i][j] = enemyActionData_14[i][j];
					}
				}
				enemyActionList = new int[enemyActionList_red.length][8];
				for( int i = 0; i< enemyActionList_red.length; i++){
					for( int j = 0; j< enemyActionList_red[i].length; j++){
						enemyActionList[i][j] = enemyActionList_red[i][j];
					}
				}
				 
			break;
		}
	}
////////////////////////////////////////*******************  BossMove()  *********************/////////////////////////////////////////////////
/*
public void bossMove(){
     enemyActionIndex++;
     if(enemyActionIndex > enemyActionList[enemyAction].length -1){
	     enemyActionIndex = 0;
		enemyActionAdd++;
		if( r.nextInt()%10>0 || enemyActionAdd>=4){
			enemyActionAdd = 0;
			if( enemyX<=playerX){
				enemyAction = enemyEscape_R;
			}else{
				enemyAction = enemyEscape_L;
			}
	     }
	}
	
	
	
}*/
////////////////////////////////////////*******************  enemyMove()  *********************/////////////////////////////////////////////////
	public void enemyMove(){
	  
	   if( enemyHealth > 0){
	  	
		//if( enemyStyle <=10){
		switch( enemyStyle){//攻击触发条件
		     case 1://红
		     case 2://蓝
		     case 3://黑
		          if( Math.abs(enemyX - playerX) < playerRadiiX+10 && Math.abs(enemyY - playerY) < 5 ){
			          if( playerX - enemyX >=  playerRadiiX){
			               enemyAction = enemyAttack_R;
			               switch( playerAction  ){
			               		case playerRun_R:
			               		case playerStand_R:
			               			playerAction = playerFaint_R;
			               		break;
			               		case playerRun_L:
			               		case playerStand_L:
			               			playerAction = playerFaint_L;
			               		break;
			               
			               }
			          }else if( enemyX - playerX >=  playerRadiiX ){
			               enemyAction = enemyAttack_L;
			               switch( playerAction  ){
			               		case playerRun_R:
			               		case playerStand_R:
			               			playerAction = playerFaint_R;
			               		break;
			               		case playerRun_L:
			               		case playerStand_L:
			               			playerAction = playerFaint_L;

⌨️ 快捷键说明

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