【文件属性】:
文件名称:愤怒的小猪游戏源码
文件大小:2.64MB
文件格式:RAR
更新时间:2015-12-07 17:08:10
愤怒 小猪 游戏 源码
愤怒的小猪游戏源码,基于Eclipse
/**
* 主菜单
*/
public class MainMenu extends Canvas {
//private static final int BG_COLOR = 0x00D1FF;
private static final int MENU_ITEM_TOP = 80;
private MIDlet midlet;
private Settings settings;
private Image groundImage;
private Image buttonImage, buttonFocusImage;
private Image[] itemImages;
private int selectedIndex = 0;
private AudioPlayer menubgplayer;//mainmenu background music player
/**
* 构造
* @throws IOException
* @throws MediaException
*/
public MainMenu(MIDlet midlet, Settings settings) throws IOException, MediaException {
setFullScreenMode(true);
this.midlet = midlet;
this.settings = settings;
menubgplayer = new AudioPlayer("menu.mid", "audio/midi", 30, true);
menubgplayer.play();
groundImage = Image.createImage("/background1.png");
buttonImage = Image.createImage("/button1.png");
buttonFocusImage = Image.createImage("/button2.png");
itemImages = new Image[] {
Image.createImage("/newGame.png"),
Image.createImage("/settings.png"),
Image.createImage("/help.png"),
Image.createImage("/exit.png")
};
}
protected void keyPressed(int keyCode) {
int gameAction = getGameAction(keyCode);
switch (gameAction) {
case UP:
moveUp();
break;
case DOWN:
moveDown();
break;
case FIRE:
try {
onSelection(selectedIndex);
} catch (IOException e) {
e.printStackTrace();
} catch (MediaException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
}
}
private void moveDown() {
selectedIndex ++;
if (selectedIndex >= itemImages.length) {
selectedIndex = 0;
}
repaint();
}
private void moveUp() {
selectedIndex --;
if (selectedIndex < 0) {
selectedIndex = itemImages.length - 1;
}
repaint();
}
protected void keyRepeated(int keyCode) {
keyPressed(keyCode);
}
protected void paint(Graphics g) {
//
drawBackgound(g);
drawItems(g);
}
private void drawBackgound(Graphics g) {
//background
//g.setColor(BG_COLOR);
//g.fillRect(0, 0, getWidth(), getHeight());
//draw background
g.drawImage(groundImage, getWidth()/2, getHeight(), Graphics.HCENTER|Graphics.BOTTOM);
}
private void drawItems(Graphics g) {
int x = getWidth() / 2;
int y = MENU_ITEM_TOP;
for (int i = 0; i < itemImages.length; i ++) {
drawItem(g, x, y, i);
y += 40;
}
}
private void drawItem(Graphics g, int x, int y, int i) {
if (i == selectedIndex) {
g.drawImage(buttonFocusImage, x, y, Graphics.HCENTER|Graphics.TOP);
} else {
g.drawImage(buttonImage, x, y, Graphics.HCENTER|Graphics.TOP);
}
g.drawImage(itemImages[i], x, y, Graphics.HCENTER|Graphics.TOP);
}
private void onSelection(int index) throws IOException, MediaException {
switch (index) {
case 0:
newGame();
break;
case 1:
settings();
break;
case 2:
help();
break;
case 3:
exit();
break;
}
}
private void exit() throws MediaException {
menubgplayer.stop();
midlet.notifyDestroyed();
}
private void help() {
try {
Help help = new Help(this);
Display.getDisplay(midlet).setCurrent(help);
} catch (IOException e) {
e.printStackTrace();
}
}
private void settings() {
SettingsForm settingsForm = new SettingsForm(this, settings);
Display.getDisplay(midlet).setCurrent(settingsForm);
}
private void newGame() throws IOException, MediaException {
menubgplayer.stop();
PigCanvas pigCanvas;
try {
pigCanvas = new PigCanvas(this);
Display.getDisplay(midlet).setCurrent(pigCanvas);
} catch (Exception e) {
e.printStackTrace();
}
}
public void back() {
Display.getDisplay(midlet).setCurrent(this);
menubgplayer.play();
}
}
网友评论
- 虽然不是我想要的编程语言的代码,但是还是很有参考价值