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

📄 miningmidlet.java

📁 JAVA小游戏。双人五子棋。需先下载编译器。
💻 JAVA
字号:
//应用程序类:MiningMIDlet.java

package com.imy.yinowl.miningscroll;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
public class MiningMIDlet extends MIDlet {
    MiningCanvas miningCanvas;
        //定义游戏界面的FullCanvas类MiningCanvas的对象miningCanvas
    public MiningMIDlet() {
        display=Display.getDisplay(this);
        miningCanvas=new MiningCanvas(this);
            //生成MiningCanvas类的对象miningCanvas
    }
    protected void startApp(){
        MiningMIDlet.display.setCurrent(miningCanvas);
          //在屏幕上绘出游戏见面miningCanvas
    }
    protected void pauseApp(){
    }
    protected void destroyApp(boolean arg0){
        notifyDestroyed();
    }
}
//Bomb.java
package com.imy.yinowl.miningscroll;
public class Bomb {
    int bombaround;
    boolean isPlayer1;
    boolean hasFound;
    boolean isBomb;

    public Bomb(){
        bombaround=0;
        isBomb=false;
        hasFound=false;
        isPlayer1=true;
    }
}
//MiningCanvas.java
package com.imy.yinowl.miningscroll;

import java.io.IOException;
import java.util.Random;
import java.util.Vector;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;import javax.microedition.lcdui.Image;import com.nokia.mid.ui.FullCanvas;
public class MiningCanvas extends FullCanvas  implements Runnable{
    MiningMIDlet miningMIDlet;
    int gamestate;
    static final int GAMESTATE_SPLASH=0;
    static final int GAMESTATE_MENU=1;
    static final int GAMESTATE_GAMEING=2;
    static final int GAMESTATE_HELP=3;
    static final int GAMESTATE_SETTING=4;
    static final int GAMESTATE_ABOUT=5;
    static final int GAMESTATE_GAMEMENU=6;
    static final int GAMESTATE_COUNT=7;
    public MiningCanvas(MiningMIDlet miningMIDlet){
        super();
        this.miningMIDlet=miningMIDlet;
        gamestate=0;//游戏加载时默认界面为启动界面
    }
    protected void paint(Graphics g) {
        g.setColor(0x00FFFFFF);
        g.fillRect(0,0,canvasW,canvasH);
        switch(gamestate){
            case GAMESTATE_SPLASH:
                paintSplashScreen(g);//绘制游戏启动界面
                break;
            case GAMESTATE_MENU:
                paintMenuScreen(g);//绘制游戏主菜单
                break;
            case GAMESTATE_HELP:
                paintHelpScreen(g);//绘制帮助界面
                break;
            case GAMESTATE_GAMEING:
                paintGameScreen(g);//绘制游戏界面
                break;
            case GAMESTATE_GAMEMENU:
                paintGameMenuScreen(g);//绘制游戏时菜单界面
                break;
            default:
                paintMenuScreen(g);//绘制游戏主菜单
                break;
    }
    public void run() {
    }
    protected synchronized void keyPressed(int keyCode) {
        int action = getGameAction(keyCode);
        switch(gamestate){
        }
    }
}
//启动画面
Thread thread;
Image splashImage;
int splashDelayTime;
public MiningCanvas(MiningMIDlet miningMIDlet){
    ...
    splashDelayTime=3000;
    try{
        splashImage=Image.createImage("/occo.png");
    }catch(IOException e){}
    thread=new Thread(this);
    thread.start();
}
private void paintSplashScreen(Graphics g){
    g.setColor(0x00000000);
    g.drawImage(splashImage,getWidth()/2,getHeight()/2-5,Graphics.HCENTER|Graphics.VCENTER);
}
public void run() {
    try{
        Thread.sleep(splashDelayTime);
    }catch(InterruptedException e){}
    gamestate=GAMESTATE_MENU;//在启动动画停留3秒后,改变游戏状态变量值,跳转到主菜单状态
    repaint();
}
//游戏主菜单界面
static final Font lowFont  = Font.getFont (Font.FACE_MONOSPACE, Font.STYLE_PLAIN, Font.SIZE_SMALL);  
static final Font highFont = Font.getFont (Font.FACE_MONOSPACE, Font.STYLE_BOLD, Font.SIZE_MEDIUM);  
    //两种字体,分别是未选中和选中状态的字体
static final int lowColor  = 0x000000FF;//未选中状态的颜色static final int highColor = 0x00FF0000;//选中状态的颜色static final int highBGColor = 0x00CCCCCC;//选中状态的背景颜色
static final int MAIN_NEW_GAME = 0;static final int MAIN_SETTINGS = 1;static final int MAIN_HELP = 2;static final int MAIN_ABOUT = 3;static final int MAIN_EXIT = 4;static final int MAIN_MENU_ITEM_COUNT = 5;static String[] mainMenu = new String[MAIN_MENU_ITEM_COUNT];
static int canvasW;//屏幕宽static int canvasH;//屏幕高static int startHeight;//菜单列表的起始高度static int spacing;//菜单项间宽度static int menuIdx;//当前选中的菜单项
public MiningCanvas(MiningMIDlet miningMIDlet){
    ...
    menuIdx = 0;
    canvasW=getWidth();canvasH=getHeight();
    spacing = highFont.getHeight()/2;
    startHeight = (canvasH-(lowFont.getHeight()*mainMenu.length)-(mainMenu.length-1)*spacing)/2;
    mainMenu[0] = "New Game";
    mainMenu[1] = "Settings";
    mainMenu[2] = "Help";
    mainMenu[3] = "About";
    mainMenu[4] = "Exit";
}
private void paintMenuScreen(Graphics g){
    for(int i=0;i < mainMenu.length;i++){
        if(i==menuIdx){
            g.setColor(highBGColor);
            g.fillRect(0,startHeight+i*(lowFont.getHeight()+spacing)-(highFont.getHeight()
                -lowFont.getHeight())/2,canvasW,highFont.getHeight());
            g.setFont(highFont);
            g.setColor(highColor);
            g.drawString(mainMenu[i],(canvasW-highFont.stringWidth(mainMenu[i]))/2,
                startHeight+i*(lowFont.getHeight()+spacing)-(highFont.getHeight()-lowFont.getHeight())/2,
                Graphics.TOP|Graphics.LEFT);
        } else {
            g.setFont(lowFont);
            g.setColor(lowColor); 
            g.drawString(mainMenu[i],(canvasW - lowFont.stringWidth(mainMenu[i])) / 2,
                startHeight + i*(lowFont.getHeight() + spacing),Graphics.TOP|Graphics.LEFT);
        } 
    }
}
//在keyPressed方法中的switch结构中添加
case GAMESTATE_MENU:
{
    if (getGameAction(keyCode) == FullCanvas.UP && menuIdx - 1 >= 0) {
        menuIdx--;
    }
    else if (getGameAction(keyCode) == FullCanvas.DOWN && menuIdx + 1 < mainMenu.length) {
        menuIdx++;
    }
    else if (getGameAction(keyCode) == FullCanvas.FIRE) {
        switch(menuIdx) {//选中后,按照选项值改变游戏状态值,跳转到相应的状态
            case MAIN_NEW_GAME:
                gamestate=GAMESTATE_GAMEING;
                break;
            case MAIN_SETTINGS:
                gamestate=GAMESTATE_SETTING;
                break;
            case MAIN_HELP: 
                gamestate=GAMESTATE_HELP;
                break;
            case MAIN_ABOUT:
                gamestate=GAMESTATE_ABOUT;
                break;
            case MAIN_EXIT:
                miningMIDlet.destroyApp(false);
                break;
            }
        }
        break;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -