📄 mainmenu.java
字号:
import java.io.InputStream;
import java.util.Random;
import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.lcdui.game.TiledLayer;
import javax.microedition.media.Player;
import javax.microedition.media.Manager;
public class mainMenu extends Canvas implements Runnable
{
private Nikuman parent;
private TiledLayer background;
private GameManager manager;
private GameDisplay gameDisplay;
public static Sprite framework;
private Sprite lvl;
private Scene scene;
public static Player player;
public static Player soundplayer[];
public static FileConnection fileConn;
public static InputStream is;
static Random random = new Random();
private Image bg;
private Image logo;
private Image menu;
private Image word;
private Image frame1;
private Image frame2;
private Image level;
private static Image option;
private static Image soundoption;
private Image sound;
private static Image soundchoose;
private static Image soundopen;
private static Image soundclose;
private Image house;
private int action;
private int count1=0;
public static int count2=0;//游戏当前所在关
private static int count3=0;//Option相关控制
private static int count4=0;
public static int count5=0;
private static int about=0;
public static boolean isMusic = false;
private boolean isOption = false;
private boolean isAbout = false;
private boolean isHelp=false;
public static boolean[] issoundopen=new boolean[3];
public static boolean isLevel = false;
public static boolean isSound=false;//声音控制
public static boolean soundType=false;//背景音乐类型
private Font font = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
public mainMenu(Nikuman parent)
{
this.parent = parent;
setFullScreenMode(true);
soundplayer=new Player[5];
try
{
bg = Image.createImage("/image/BG.png");
logo = Image.createImage("/image/Logo.png");
menu = Image.createImage("/image/Menu.png");
frame1 = Image.createImage("/image/Frame.png");
frame2 = Image.createImage("/image/Frame1.png");
option = Image.createImage("/image/Option.png");
level = Image.createImage("/image/Level.png");
word = Image.createImage("/image/Word1.png");
soundoption = Image.createImage("/image/soundOption.png");
sound = Image.createImage("/image/isound.png");
soundopen=Image.createImage(sound, 0, 0, 20, 20, 0);
soundclose=Image.createImage(sound, 20, 0, 20, 20, 0);
house=Image.createImage("/image/house.png");
player = Manager.createPlayer(
getClass().getResourceAsStream("/Sound/1.mid"), "audio/midi");
try{
player.setLoopCount(-1);
}catch(Exception e){}
soundplayer[0] = Manager.createPlayer(
getClass().getResourceAsStream("/Sound/menumove.wav"), "audio/X-wav");
soundplayer[1] = Manager.createPlayer(
getClass().getResourceAsStream("/Sound/menuselect.wav"), "audio/X-wav");
soundplayer[2] = Manager.createPlayer(
getClass().getResourceAsStream("/Sound/miss.wav"), "audio/X-wav");
soundplayer[3] = Manager.createPlayer(
getClass().getResourceAsStream("/Sound/tan.wav"), "audio/X-wav");
soundplayer[4] = Manager.createPlayer(
getClass().getResourceAsStream("/Sound/win.mid"), "audio/midi");
}
catch(Exception e){}
manager = new GameManager(gameDisplay);
framework = new Sprite(frame1);
framework.setPosition(50, 75);
lvl = new Sprite(level);
lvl.setPosition(85,134);
scene = new Scene();
background = new TiledLayer(6, 10, bg, 90, 60);
background.fillCells(0, 0, 6, 10, 1);
manager.insert(background, 0);
issoundopen[0]=true;
issoundopen[1]=true;
issoundopen[2]=true;
Thread t = new Thread(this);
t.start();
}
public void paint(Graphics g)
{
g.setColor(0xFFFFFFFF);
g.fillRect(0, 0, 176, 220);
if(!isOption&&!isAbout)
drawScreen(g);
else if(isOption&&isMusic)
Nikuman.showBrowser();
else if(isOption&&!isHelp&&!isMusic)
drawOption(g);
else if(isOption) drawHelp(g);
else if(isAbout) drawAbout(g);
}
private void drawScreen(Graphics g)
{
manager.paint(g, 0,0);
g.drawImage(logo, 23, 20, 0);
if(!isLevel)
{
g.drawImage(menu, 33,62, 0);
vibrateY(75+count1*22, framework);
framework.paint(g);
}
else
{
g.drawImage(word, 35, 95, 0);
vibrateX(85-count2*32,lvl);
lvl.paint(g);
g.drawImage(frame2, 68, 129, 0);
}
}
public static void drawOption(Graphics g)
{
g.drawImage(option, 0, 0, 0);
if(isSound){
soundchoose=Image.createImage(soundoption, 0, 0, 80, 130, 0);
g.drawImage(soundchoose, 60, 28, 0);
for(int i=0;i<3;i++){
if(issoundopen[i]==true)
g.drawImage(soundopen, 90, 52+i*40, 0);
else
g.drawImage(soundclose,90, 52+i*40, 0);
}
vibrateY(28+count4*40, framework);
}
else if(soundType){
soundchoose=Image.createImage(soundoption, 80, 0, 80, 130, 0);
g.drawImage(soundchoose, 60, 28, 0);
vibrateY(68+count5*40, framework);
}
else vibrateY(28+count3*35, framework);
framework.paint(g);
}
private void drawAbout(Graphics g)
{
g.drawImage(house, 0, 0, 0);
g.setFont(font);
g.setColor(000000);
for(int i=0;i<20;i++)
g.drawString(Scene.stringabout[i],0, 220+i*16-about, 0);
try{
Thread.sleep(65);
}catch(Exception e){}
}
private void drawHelp(Graphics g)
{
g.drawImage(house, 0, 0, 0);
g.setFont(font);
g.setColor(000000);
for(int i=0;i<20;i++)
g.drawString(Scene.stringhelp[i],0, 220+i*16-about, 0);
try{
Thread.sleep(65);
}catch(Exception e){}
}
//控制选择框架的移动
public static void vibrateY(int pointY, Sprite s)
{ // pointY 表示Y方向的位置
int _y = s.getY();
_y -= (_y - pointY)/2;
s.setPosition(s.getX(), _y);
}
public void vibrateX(int pointX, Sprite s )
{ // pointX 表示X方向的位置
int _x = s.getX();
_x -= (_x - pointX)/2;
s.setPosition(_x, s.getY());
}
protected void keyPressed(int keyCode)
{
action = getGameAction(keyCode);
if(issoundopen[0]==true){
if(action == FIRE||keyCode==-6)
{
try{
soundplayer[1].start();
}catch(Exception e){}
}
else
{
try{
soundplayer[0].start();
}catch(Exception e){}
}
}
if(keyCode==-8||keyCode==-7)
{
isLevel = false;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -