⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainmenu.java

📁 一款手机游戏
💻 JAVA
📖 第 1 页 / 共 2 页
字号:


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 + -