📄 playscreen.java
字号:
changeColorDelay = 3;
g.setColor(0xffffff);
} else {
g.setColor(0xff0000);
}
//#if MOT_E398 || MOT_V600 || MOT_L7
//# g.drawString(confirmButton, ThreadCanvas.SCREEN_WIDTH - buttonWidth, ThreadCanvas.SCREEN_HEIGHT - fontHeight, 0);
//#else
//#if MOT_E2
//# g.drawString(confirmButton, ThreadCanvas.SCREEN_WIDTH - buttonWidth, ThreadCanvas.SCREEN_HEIGHT - fontHeight - 20, 0);
//#else
g.drawString(confirmButton, 0, ThreadCanvas.SCREEN_HEIGHT - fontHeight, 0);
//#endif
//#endif
break;
case PLAY_STATE:
stage.render(g);
if (!boss.isDead()) {
boss.render(g);
}
// PLAYER
player.render(g);
// 宝物
MovingObject treasure = treasurePool.getFirstUsed();
while (treasure != null) {
MovingObject next = treasure.getNextLinked();
drawTreasure(g, treasure);
treasure = next;
}
//玩家子弹
MovingObject bullet = bulletPool.getFirstUsed();
while (bullet != null) {
MovingObject next = bullet.getNextLinked();
player.drawBullet(g, bullet);
bullet = next;
}
//敌人子弹
MovingObject eBullet = enemyBulletPool.getFirstUsed();
while (eBullet != null) {
MovingObject next = eBullet.getNextLinked();
boss.drawBullet(g, eBullet);
eBullet = next;
}
//敌人
Enemy enemy = (Enemy)enemyPool.getFirstUsed();
while (enemy != null) {
MovingObject next = enemy.getNextLinked();
enemy.render(g);
enemy = (Enemy)next;
}
drawBomb(g);
drawUI(g);
if(hasPass)
{
pass++;
if(pass>=60)
{
Control.oldGunLevel = player.getGunLevel();
Control.oldScore = player.getScore();
Control.show(Control.PASS_STAGE);
Enemy.bossImageSet = null;
hasPass = false;
pass = 0;
}
}
if(player.getLife()==0)
{
pass++;
g.setColor(0x000000);
g.fillRect(0, 0, 240, pass*2);
//#if NOK_7370 || MOT_E2
//# g.fillRect(0, 320-pass*2, 240, pass*2);
//#else
//#if NOK_7260 || NOK_7210 || NOK_6101
//# g.fillRect(0, 160-pass*2, 240, pass*2);
//#else
g.fillRect(0, 208-pass*2, 240, pass*2);
//#endif
//#endif
if(pass>=60)
{
Player.playerImageSet = null;
Player.bombImageSet = null;
Player.headImageSet = null;
Enemy.bossImageSet = null;
PlayScreen.state = 0;
Control.oldGunLevel = 1;
Control.stage = 1;
Control.oldScore = 0;
pass = 0;
Control.show(Control.TITLE_STAGE);
}
}
break;
}
}
/**
* 绘制游戏中出现的宝物
* @param g
* @param treasureArg
*/
public void drawTreasure(Graphics g, MovingObject treasureArg) {
treasureImageSet.draw(g, treasureArg.currentState,
treasureArg.currentFrame, treasureArg.getLocationX(),
treasureArg.getLocationY());
}
/**
* 绘制灵弹的相应表像
*
* @param g
*/
private void drawBomb(Graphics g) {
g.setColor(0xFFBA00);
int tempX = BOMB_POINT_START_X;
for (int i = 0; i < player.getBombPoint(); i++) {
g.fillRect(tempX, BOMB_POINT_START_Y, BOMB_POINT_WIDTH,
BOMB_POINT_HEIGHT);
tempX += BOMB_POINT_SEPERATE;
}
tempX = BOMB_START_X;
for (int i = 0; i < player.getBombNum(); i++) {
g.drawImage(bombImage, tempX, BOMB_START_Y, 0);
tempX += BOMB_WIDTH;
}
}
private void drawUI(Graphics g) {
g.setColor(0x00ff00);
g.drawImage(ui,0,0,0);
//#if NOK_7210 || NOK_7260 || NOK_6101
//# g.fillRect(35,3,player.energy/3,4);
//# player.headImageSet.draw(g,0,Control.currentPlayer,15,2);
//# if(player.getLife()>=9){player.setLife(9);}
//# player.numberImageSet.draw(g,0,player.getLife(),28,2);
//# g.setColor(0xffffff);
//# player.numberImageSet.draw(g,0,player.getScore()%100000/10000,91,2);
//# player.numberImageSet.draw(g,0,player.getScore()%10000/1000,97,2);
//# player.numberImageSet.draw(g,0,player.getScore()%1000/100,103,2);
//# player.numberImageSet.draw(g,0,player.getScore()%100/10,109,2);
//# player.numberImageSet.draw(g,0,player.getScore()%10,115,2);
//#else
//#if NOK_7370 || MOT_E2
//# g.fillRect(67,6,player.energy/2,4);
//# player.headImageSet.draw(g,0,Control.currentPlayer,30,3);
//# if(player.getLife()>=9){player.setLife(9);}
//# player.numberImageSet.draw(g,0,player.getLife(),48,4);
//# g.setColor(0xffffff);
//# player.numberImageSet.draw(g,0,player.getScore()/100000,170,3);
//# player.numberImageSet.draw(g,0,player.getScore()%100000/10000,176,3);
//# player.numberImageSet.draw(g,0,player.getScore()%10000/1000,182,3);
//# player.numberImageSet.draw(g,0,player.getScore()%1000/100,188,3);
//# player.numberImageSet.draw(g,0,player.getScore()%100/10,194,3);
//# player.numberImageSet.draw(g,0,player.getScore()%10,200,3);
//#else
//#if NOK_6230i
//# g.fillRect(60,6,player.energy/2,4);
//# player.headImageSet.draw(g,0,Control.currentPlayer,25,3);
//# if(player.getLife()>=9){player.setLife(9);}
//# player.numberImageSet.draw(g,0,player.getLife(),43,4);
//# g.setColor(0xffffff);
//# player.numberImageSet.draw(g,0,player.getScore()/100000,140,3);
//# player.numberImageSet.draw(g,0,player.getScore()%100000/10000,146,3);
//# player.numberImageSet.draw(g,0,player.getScore()%10000/1000,152,3);
//# player.numberImageSet.draw(g,0,player.getScore()%1000/100,158,3);
//# player.numberImageSet.draw(g,0,player.getScore()%100/10,164,3);
//# player.numberImageSet.draw(g,0,player.getScore()%10,170,3);
//#else
g.fillRect(50,6,player.energy/2,4);
player.headImageSet.draw(g,0,Control.currentPlayer,20,3);
if(player.getLife()>=9){player.setLife(9);}
player.numberImageSet.draw(g,0,player.getLife(),38,4);
g.setColor(0xffffff);
player.numberImageSet.draw(g,0,player.getScore()/100000,130,3);
player.numberImageSet.draw(g,0,player.getScore()%100000/10000,136,3);
player.numberImageSet.draw(g,0,player.getScore()%10000/1000,142,3);
player.numberImageSet.draw(g,0,player.getScore()%1000/100,148,3);
player.numberImageSet.draw(g,0,player.getScore()%100/10,154,3);
player.numberImageSet.draw(g,0,player.getScore()%10,160,3);
//#endif
//#endif
//#endif
}
protected void keyPressed(int keycode) {
switch (state) {
case START_STATE:
switch (keycode) {
case KeyMap.FIRE:
//#if MOT_E398 || MOT_V600 || MOT_L7 || MOT_E2
//# case KeyMap.RIGHT_SOFT:
//#else
case KeyMap.LEFT_SOFT:
//#endif
// PlayScreen.state = 0;
if (Control.getStage() > 1) {
state = PLAY_STATE;
stage.initial(Control.getStage());
} else {
stage.initial(Control.getStage());
state = PLAY_STATE;
}
player.setScore(Control.oldScore);
break;
}
break;
case PLAY_STATE:
switch (keycode) {
case KeyMap.UP:
setControlKeys(true, false, false, false);
break;
case KeyMap.DOWN:
setControlKeys(false, true, false, false);
break;
case KeyMap.LEFT:
setControlKeys(false, false, true, false);
break;
case KeyMap.RIGHT:
setControlKeys(false, false, false, true);
break;
case KeyMap.NUM0:
isKeyFire = true;
break;
//#if MOT_E398 || MOT_V600 || MOT_L7 || MOT_E2
//# case KeyMap.RIGHT_SOFT:
//#else
case KeyMap.LEFT_SOFT:
//#endif
Control.show(Control.MENU_STAGE);
break;
case KeyMap.NUM1:
case KeyMap.NUM3:
player.fireBomb();
break;
}
break;
}
}
protected void keyReleased(int keyCode) {
switch (keyCode) {
default:
setControlKeys(false, false, false, false);
break;
case KeyMap.UP:
isKeyUp = false;
break;
case KeyMap.DOWN:
isKeyDown = false;
break;
case KeyMap.LEFT:
isKeyLeft = false;
break;
case KeyMap.RIGHT:
isKeyRight = false;
break;
case KeyMap.NUM0:
isKeyFire = false;
break;
}
}
public void playGameStage() {
if (isKeyUp)
player.keyUp();
if (isKeyDown)
player.keyDown();
if (isKeyLeft)
player.keyLeft();
if (isKeyRight) {
player.keyRight();
}
if (isKeyFire) {
delayChangeAuto++;
if (delayChangeAuto == 15) {
delayChangeAuto = 0;
player.changeAuto();
}
} else {
delayChangeAuto = 0;
}
if (!isKeyLeft && !isKeyRight) {
player.releaseFire();
}
collisionDetection();
// PLAYER
player.cycle();
int posX = player.getLocationX() + player.getWidth() / 2;
int posY = player.getLocationY() + player.getHeight() / 2;
// BOSS
if (!boss.isDead()) {
boss.cycle(posX, posY);
}
// 宝物
MovingObject treasure = getTreasurePool().getFirstUsed();
while (treasure != null) {
MovingObject next = treasure.getNextLinked();
treasure.cycle();
treasure.animateCycle();
if (treasure.getLocationX() < 0 || treasure.getLocationX()-10 > ThreadCanvas.SCREEN_WIDTH) {
treasure.setSpeedX(-treasure.getSpeedX());
} else if (treasure.getLocationY() - 10 < PLAY_START_Y || treasure.getLocationY() > PLAY_END_Y) {
treasure.setSpeedY(-treasure.getSpeedY());
}
if (treasure.isDestroy() && treasure.getTotalCycles() > 3) {
releaseTreasure(treasure);
}
treasure = next;
}
// 子弹
MovingObject bullet = getBulletPool().getFirstUsed();
while (bullet != null) {
MovingObject next = bullet.getNextLinked();
if(bullet.getLocationX() < 0 || bullet.getLocationX() > ThreadCanvas.SCREEN_WIDTH
|| bullet.getLocationY() - 10 < 0 || bullet.getLocationY() >ThreadCanvas.SCREEN_HEIGHT)
{
releaseBullet(bullet);
}
bullet.cycle();
bullet.animateCycle();
bullet = next;
}
// 敌人子弹
MovingObject eBullet = getEnemyBulletPool().getFirstUsed();
while (eBullet != null) {
MovingObject next = eBullet.getNextLinked();
eBullet.cycle();
eBullet.animateCycle();
if(eBullet.getLocationX() < 0 || eBullet.getLocationX() > ThreadCanvas.SCREEN_WIDTH
|| eBullet.getLocationY() < 0 || eBullet.getLocationY() >ThreadCanvas.SCREEN_HEIGHT)
{
releaseEnemyBullet(eBullet);
}
eBullet = next;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -