📄 bosscanvas.java
字号:
if(corsair[i].isVisible()){
corsair[i].move(0,6);
if(corsair[i].collidesWith(playerPlane,true)){
addExplosion(playerPlane);
playerHP = playerHP - 8;//海盗船的摧毁力为8
corsair[i].setVisible(false);
}
corsair[i].nextFrame();
corsair[i].checkBounds();
}
}
//显示太空驳船
if(random.nextInt()% 80 == 0){
for(int i= 0; i< SPACEBARGECOUNTS; i++){
if(!spaceBarge[i].isVisible()){
spaceBarge[i].setPosition(Math.abs(random.nextInt()%getWidth()),20);
spaceBarge[i].setVisible(true);
}
}
}
//维护太空驳船
for(int i= 0; i< SPACEBARGECOUNTS; i++){
if(spaceBarge[i].isVisible()){
spaceBarge[i].move(0,4);
if(spaceBarge[i].collidesWith(playerPlane,true)){
addExplosion(playerPlane);
playerHP = playerHP - 5;//太空驳船的摧毁力为5
spaceBarge[i].setVisible(false);
}
spaceBarge[i].nextFrame();
spaceBarge[i].checkBounds();
}
}
//显示监督者
if(random.nextInt()% 90 == 0){
for(int i= 0; i< SUPERVISORCOUNTS; i++){
if(!supervisor[i].isVisible()){
supervisor[i].setPosition(Math.abs(random.nextInt()%getWidth()),20);
supervisor[i].setVisible(true);
}
}
}
//维护监督者
for(int i= 0; i< SUPERVISORCOUNTS; i++){
if(supervisor[i].isVisible()){
supervisor[i].move(0,5);
if(supervisor[i].collidesWith(playerPlane,true)){
addExplosion(playerPlane);
playerHP = playerHP - 6;//监督者的摧毁力为6
supervisor[i].setVisible(false);
}
supervisor[i].nextFrame();
supervisor[i].checkBounds();
}
}
//显示杀手卫星
if(random.nextInt()% 60 == 0){
for(int i= 0; i< KILLERSATELLITESCOUNTS; i++){
if(!killerSatellites[i].isVisible()){
killerSatellites[i].setPosition(Math.abs(random.nextInt()%getWidth()),20);
killerSatellites[i].setVisible(true);
}
}
}
//维护杀手卫星
for(int i= 0; i< KILLERSATELLITESCOUNTS; i++){
if(killerSatellites[i].isVisible()){
killerSatellites[i].move(0,6);
if(killerSatellites[i].collidesWith(playerPlane,true)){
addExplosion(playerPlane);
playerHP = playerHP - 8;//杀手卫星的摧毁力为8
killerSatellites[i].setVisible(false);
}
killerSatellites[i].nextFrame();
killerSatellites[i].checkBounds();
}
}
//=================对敌机的维护end=================
// ===================玩家=================
if (!playerPlane.isVisible()) {
addCharacter(playerPlane);
} else if (playerPlane.isVisible()) {
int keyStates = getKeyStates();
if ((keyStates & LEFT_PRESSED) != 0) {
playerPlane.move(-4, 0);
} else if ((keyStates & RIGHT_PRESSED) != 0) {
playerPlane.move(4, 0);
}
//返回菜单
else if((keyStates & UP_PRESSED) != 0){
System.out.println("4.game interrupted! back to menu!");
missionBossGameOver = false;
bossThread = null;
isWin = false;
Dragon.MISSIONCOUNTS = Dragon.MENULIST;
Dragon.showMenu = true;
}else if ((keyStates & FIRE_PRESSED) != 0) {
if (random.nextInt() % 2 == 0) {
for (int i = 0; i < MISSILECOUNTS; i++) {
if (!missile[i].isVisible()) {
addMissile(playerPlane);
break;
}
}
}
}
playerPlane.checkBounds();
}
// ===============随机增加导弹start==============
// boss发射第四种导弹
if (random.nextInt() % 15 == 0) {
for (int i = 0; i < MISSILECOUNTS; i++) {
if (!missile[i].isVisible()) {
missile[i].setFrame(3);
missile[i].setPosition(boss.getX() + 42, boss.getY() + 70);
missile[i].setVisible(true);
break;
}
}
}
// boss发射第五种导弹
if (random.nextInt() % 16 == 0) {
for (int i = 0; i < MISSILECOUNTS; i++) {
if (!missile[i].isVisible()) {
missile[i].setFrame(4);
missile[i].setPosition(boss.getX() + 42, boss.getY() + 70);
missile[i].setVisible(true);
break;
}
}
}
// boss发射第十三种导弹
if (random.nextInt() % 15 == 0) {
for (int i = 0; i < MISSILECOUNTS; i++) {
if (!missile[i].isVisible()) {
missile[i].setFrame(12);
missile[i].setPosition(boss.getX() + 42, boss.getY() + 70);
missile[i].setVisible(true);
break;
}
}
}
// boss发射第五种导弹
if (random.nextInt() % 8 == 0) {
for (int i = 0; i < MISSILECOUNTS; i++) {
if(!missile[i].isVisible()){
missile[i].setFrame(8);
missile[i].setPosition(boss.getX() + 7, boss.getY() + 70);
missile[i].setVisible(true);
missile[i + 1].setFrame(8);
missile[i + 1].setPosition(boss.getX() + 16,
boss.getY() + 70);
missile[i + 1].setVisible(true);
missile[i + 2].setFrame(8);
missile[i + 2].setPosition(
(boss.getX() + boss.getWidth()) - 4,
boss.getY() + 70);
missile[i + 2].setVisible(true);
missile[i + 3].setFrame(8);
missile[i + 3].setPosition(
(boss.getX() + boss.getWidth()) - 16,
boss.getY() + 70);
missile[i + 3].setVisible(true);
break;
}
if (!missile[i + 1].isVisible()) {
missile[i + 1].setFrame(8);
missile[i + 1].setPosition(boss.getX() + 16,
boss.getY() + 70);
missile[i + 1].setVisible(true);
}
if (!missile[i + 2].isVisible()) {
missile[i + 2].setFrame(8);
missile[i + 2].setPosition(
(boss.getX() + boss.getWidth()) - 4,
boss.getY() + 70);
missile[i + 2].setVisible(true);
}
if (!missile[i + 3].isVisible()) {
missile[i + 3].setFrame(8);
missile[i + 3].setPosition(
(boss.getX() + boss.getWidth()) - 16,
boss.getY() + 70);
missile[i + 3].setVisible(true);
}
break;
}
}
// ===============随机增加导弹end==============
// ===============急救箱start===============
if (random.nextInt() % 180 == 0) {
for (int i = 0; i < 20; i++) {
if (!missile[i].isVisible()) {
missile[i].setFrame(9);
missile[i].setPosition(Math.abs(random.nextInt()
% (getWidth() - 50) + 25), Math.abs(random
.nextInt()
% (getHeight() - 100)) + 25);
missile[i].setVisible(true);
break;
}
}
}
// =============急救箱end==================
// ===============红心start=================
if (random.nextInt() % 350 == 0) {
for (int i = 0; i < MISSILECOUNTS; i++) {
if (!missile[i].isVisible()) {
missile[i].setFrame(13);
missile[i].setPosition(Math.abs(random.nextInt()
% (getWidth() - 50) + 25), Math.abs(random
.nextInt()
% (getHeight() - 100) + 25));// x(25~151),y(25~123)
missile[i].setVisible(true);
break;
}
}
}
// ===============红心end==================
// ============爆炸处理start===============
for (int i = 0; i < EXPLOSIONCOUNTS; i++) {
if (explosion[i].isVisible()) {
if (explosion[i].getFrame() < 3) {
explosion[i].nextFrame();
} else {
explosion[i].setVisible(false);
}
}
}
// ============爆炸处理end================
// =============导弹处理start================
for (int i = 0; i < MISSILECOUNTS; i++) {
if (missile[i].isVisible()) {
// 玩家发射导弹
if (missile[i].getFrame() == 14) {
missile[i].move(0, -5);
if (missile[i].collidesWith(boss, true)) {
addExplosion(boss);
bossHP = bossHP - 2;
playerScores = playerScores + 10;
missile[i].setVisible(false);
}
//击中海盗船
for(int j =0; j< CORSAIRCOUNTS; j++){
if (missile[i].collidesWith(corsair[j], true)) {
addExplosion(corsair[j]);
playerScores = playerScores + 10;
missile[i].setVisible(false);
corsair[j].setVisible(false);
break;
}
}
//击中太空驳船
for(int j =0; j< SPACEBARGECOUNTS; j++){
if (missile[i].collidesWith(spaceBarge[j], true)) {
addExplosion(spaceBarge[j]);
playerScores = playerScores + 10;
missile[i].setVisible(false);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -