Far-Out/src/com/sagi/dayan/Games/Stage/MainMenuScene.java
Matan 4f73503f89 new features
- blasts added ship vs enemy ship
- blasts remove, missiles remove
- audio loop
2016-03-19 22:00:13 +02:00

124 lines
3.5 KiB
Java

package com.sagi.dayan.Games.Stage;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.swing.JPanel;
import sun.audio.AudioPlayer;
import sun.audio.AudioStream;
import com.sagi.dayan.Games.Elements.MenuBoxSprite;
import com.sagi.dayan.Games.Engine.GameEngine;
import com.sagi.dayan.Games.Utils.Utils;
/**
* Created by sagi on 2/24/16.
*/
public class MainMenuScene extends Scene {
private MenuBoxSprite menuBox;
private int menuItem;
private final int MAX_ITEM_INDEX = 3, X_AXIS=560, ITEM_EXIT = 3, ITEM_SETTINGS = 2, ITEM_2P = 1, ITEM_1P = 0;
private int[] axis = {370, 480, 590, 700};
public MainMenuScene(int stageWidth, int stageHeight, GameEngine engine) {
super(stageWidth, stageHeight, engine);
menuItem = 0;
menuBox = new MenuBoxSprite(X_AXIS, axis[menuItem], stageWidth, stageHeight, 0, "menu.jpg", 0, 425, 110, 15); //bImage is the background... not trivial
try {
AudioPlayer.player.start(new AudioStream(Utils.getSoundResourceAsStream("intro_LowQuality.wav")));
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void update() {
menuBox.setLocY(axis[menuItem]);
menuBox.update();
}
@Override
public void render(JPanel p) {
sceneImage = new BufferedImage(this.stageWidth, this.stageHeight, Image.SCALE_FAST);
Graphics g = sceneImage.getGraphics();
g.drawImage(menuBox.getbImage(), 0, 0, p);
menuBox.drawSprite(g, p);
Font f = engine.getGameFont();
f = f.deriveFont(25F);
g.setFont(f);
g.drawString("Player1 record: " +engine.p1HighScore, 700, 50);
g.drawString("Player2 record: " +engine.p2HighScore, 700, 100);
try {
if(!AudioPlayer.player.isAlive()){
System.out.println("Start again");
AudioPlayer.player.start(new AudioStream(Utils.getSoundResourceAsStream("intro_LowQuality.wav")));
}
}catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void keyTyped(KeyEvent keyEvent) {
}
@Override
public void keyPressed(KeyEvent keyEvent) {
switch (keyEvent.getKeyCode()){
case KeyEvent.VK_UP:
if(menuItem == 0)
menuItem = MAX_ITEM_INDEX;
else
menuItem--;
Utils.playSound("menuSelect.wav");
break;
case KeyEvent.VK_DOWN:
if(menuItem == MAX_ITEM_INDEX)
menuItem = 0;
else
menuItem++;
Utils.playSound("menuSelect.wav");
break;
case KeyEvent.VK_ENTER:
switch(menuItem){
case ITEM_1P:
case ITEM_2P:
Utils.playSound("menuItem.wav");
engine.startGame(menuItem+1);
break;
case ITEM_SETTINGS:
Utils.playSound("menuItem.wav");
engine.goToSettings();
break;
case ITEM_EXIT:
System.exit(0);
break;
}
}
}
@Override
public void keyReleased(KeyEvent keyEvent) {
}
}