📄 player.java
字号:
delayAssistantShoot1 = 10;
break;
case 5:
delayAssistantShoot2 = 10;
super.bHitPower = 20;
break;
}
break;
case 2:
super.bSpeed = 12;
super.bWidth = 5;
super.bHeight = 5;
super.bDelayShoot = 4;
switch (level) {
case 1:
super.bHitPower = 8;
break;
case 2:
super.bHitPower = 10;
break;
case 3:
super.bHitPower = 15;
break;
case 4:
super.bHitPower = 10;
delayAssistantShoot1 = 10;
break;
case 5:
delayAssistantShoot2 = 10;
super.bHitPower = 20;
break;
}
break;
case 3:
super.bSpeed = 12;
super.bWidth = 5;
super.bHeight = 5;
super.bDelayShoot = 3;
switch (level) {
case 1:
super.bHitPower = 10;
break;
case 2:
super.bHitPower = 20;
break;
case 3:
super.bHitPower = 30;
break;
case 4:
super.bHitPower = 10;
delayAssistantShoot1 = 10;
break;
case 5:
delayAssistantShoot2 = 10;
super.bHitPower = 20;
break;
}
break;
}
}
/**
* 如果玩家设置为不可见,即为无敌状态
*
* @return
*/
public boolean isInvisible() {
return delayInitial > 0 || isBombState;
}
/**
* 获得玩家的速度
*
* @return
*/
public int getSpeed() {
return super.speedX;
}
/**
* 设置玩家的速度
*
* @param newSpeed
*/
public void setSpeed(int newSpeed) {
super.speedX = newSpeed;
super.speedY = newSpeed;
}
/**
* 增加分数
*/
public void addScore(int amount) { // 增加分数
int lastScore = score;
score += amount;
if (score / 2000 - lastScore / 2000 == 1) {
life++;
}
}
/**
* 获得当前的分数
*
* @return
*/
public int getScore() {
return score;
}
/**
* 增加当前的血
*/
public void addEnergy(int addenergy) {
int lastEnergy = energy;
energy += addenergy;
if (lastEnergy >= MAX_ENERGY)
energy = MAX_ENERGY;
}
/**
* 设置当前的分数
*
* @param newScore
*/
public void setScore(int newScore) {
score = newScore;
}
/**
* 获得灵弹点数
*
* @return
*/
public int getBombPoint() {
return bombPoint;
}
/**
* 增加灵弹点数
*
*/
public void addBombPoint() {
bombPoint++;
if (bombPoint == 30) {
bombPoint = 0;
bombNum++; //产生灵弹
}
}
/**
* 获得灵弹数
*
* @return
*/
public int getBombNum() {
return bombNum;
}
/**
* 增加灵弹数
*
*/
public void addBomb() {
bombNum++;
}
/**
* 向上按键
*
*/
public void keyUp() {
if (isDead() || delayInitial > 28) {
return;
} else {
moveY(-super.speedY);
return;
}
}
/**
* 向下按键
*
*/
public void keyDown() {
if (isDead() || delayInitial > 28) {
return;
} else {
moveY(super.speedY);
return;
}
}
/**
* 向左按键
*
*/
public void keyLeft() {
if (isDead() || delayInitial > 28) {
return;
} else {
if (!isBombState) {
super.currentFrame = 1;
}
moveX(-super.speedX);
return;
}
}
public void keyRight() {
if (isDead() || delayInitial > 28) {
return;
} else {
if (!isBombState) {
super.currentFrame = 2;
}
moveX(super.speedX);
return;
}
}
public void changeAuto() {
isAutoFire = !isAutoFire;
}
public void releaseFire() {
if (!isBombState && !isDestroy())
super.currentFrame = 1;
}
public void fire() {
// int posX = super.curLoc.getX();
// int posY = super.curLoc.getY();
if (isDead() || delayInitial > 28)
return;
if (!isBombState) {
if (super.delayShoot <= 0) {
super.delayShoot = super.bDelayShoot;
fireBullet(PlayScreen.getBulletPool(), super.gunId, super.bHitPower,
bSpeed, 0, super.getLocationX() + super.getWidth() / 2,
super.getLocationY() - 3, super.bWidth, super.bHeight);
}
if (delayAssistantShoot1 <= 0) {
switch (type) {
case HUMAN:
delayAssistantShoot1 = 10;
if (gunLevel == 3 || gunLevel == 4) {
//TODO:辅助弹1
}
break;
}
}
if (delayAssistantShoot2 <= 0) {
if (type == HUMAN && gunLevel == 4) {
delayAssistantShoot2 = 10;
//TODO:辅助弹2
}
}
} else {
if (delayBomb != 0) {
if (delayBomb % bombFrequence == 0) {
//灵弹的爆炸处理
switch (type) {
case HUMAN:
break;
case 2: //角色2
case 3: //角色3
case 4: //角色4
}
}
} else {
isBombState = false;
super.currentFrame = 1;
}
}
}
public void moveX(int moveoffset)
{
int temp = super.curLoc.getX() + getWidth() / 2 + moveoffset;
if (temp < ThreadCanvas.SCREEN_WIDTH && temp > 0)
super.moveX(moveoffset);
}
public void moveY(int moveoffset) {
int temp = super.curLoc.getY() + getHeight() / 2 + moveoffset;
if (temp < ThreadCanvas.SCREEN_HEIGHT - 5 && temp > 15)
super.moveY(moveoffset);
}
/**
* 绘制玩家图片
* @param g
*/
public void render(Graphics g) {
int posX = super.curLoc.getX() - BOUND_OFFSETX;
int posY = super.curLoc.getY() - BOUND_OFFSETY;
if (isInvisible()) {
//playerImageSet.draw(g, super.currentState, 0, posX, posY);
playerImageSet.draw(g, 0, 0, posX, posY);
delayShieldFlash++;
if (delayShieldFlash >= 3) {
delayShieldFlash = 0;
//外部光环
//playerImageSet.draw(g, super.currentState, 3, posX, posY);
playerImageSet.draw(g, 0, 3, posX, posY);
}
if (isBombState) { //释放炸弹的图片效果
if (num <= bombImageSet.getTotalFrames(0) * 3) {
//#if NOK_7370 || MOT_E2
//# if(Control.currentPlayer == 3){
//# bombImageSet.draw(g,0,num/3,95,90);
//# }else{
//# bombImageSet.draw(g,0,num/3,55,90);
//# }
//#else
if(Control.currentPlayer == 3){
bombImageSet.draw(g,0,num/3,60,30);
}else{
bombImageSet.draw(g,0,num/3,20,30);
}
//#endif
num++;
if(num>=12)num = 0;
// //#if NOK_QD
// //# if(num>=6)num = 6;
// //#else
// if(num>=18)num = 18;
// //#endif
}
}
} else {
if (num >= 18) num = 0;
// System.out.println("num = " + num);
// playerImageSet.draw(g, super.currentState, num / 2, posX, posY);
playerImageSet.draw(g, 0, num / 2, posX, posY);
num++;
if (num >= 6) num = 0;
}
if (isDestroy()) {
if (super.curExpAniId < explodeImageSet.getTotalFrames(0)) {
explodeImageSet.draw(g, 0, super.curExpAniId, posX, posY);
super.curExpAniId++;
} else {
if (currentFrame != 3) {
currentFrame = 3;
setSpeedY(5);
} else {
int temp = super.curLoc.getY() + getHeight() / 2;
if (temp >= PlayScreen.PLAY_END_Y){
dead();
}
}
}
}
}
/**
* 点燃灵弹
*
*/
public void fireBomb() {
if (!isDestroy() && !isBombState && bombNum > 0) {
super.curExpAniId=0;
super.currentFrame = 2;
isBombState = true;
bombNum--;
delayBomb = 60;
bombFrequence = 3;
}
}
public void strong() {
if (!isDestroy() && !isBombState && bombNum > 0) {
super.currentFrame = 2;
delayBomb = 10;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -