📄 gamecanvas.java
字号:
/*右 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 + -