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

📄 xgame.java

📁 初学者的佳音 初学者的佳音 初学者的佳音
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
package x;



import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.lcdui.*;

import java.io.*;

import org.kxml2.io.*;
import org.xmlpull.v1.*;

import java.util.Vector;

import javax.microedition.rms.*;



#if((${ant.handset_music}!="none")||(${ant.handset_sound}!="none"))
import javax.microedition.media.*;
#end



public class XGame extends XMain {

	// ************************************
	// state
	// ************************************
 
	
	
	private static final int STATE_LOGO_GAME_EXIT=3;
	
	private static final int STATE_MENU_START = 21;
	private static final int STATE_PARSERLIST = 101;
	private static final int STATE_MAINLIST = 102;

	private static final int STATE_MENU_STAGE = 22;
	
	private static final int STATE_MENU_HELP = 23;
	private static final int STATE_MENU_SCORE = 24;
	private static final int STATE_MENU_OPTION = 25;

	private static final int STATE_GAME_SELECT_LEVEL=61;
	private static final int STATE_GAME_SELECT_MERMAID=62;
	
	public static final int STATE_GAME_LEVEL_SUCCESS=63;
	
	public static final int STATE_GAME_LEVEL_FAILURE=64;
	private static final int STATE_GAME_PASS=65;
	
	
	public static ReaderMIDlet instance=null;
	  
	   
	public static Vector vector=new Vector();
	public static Vector fictons=new Vector();
	public  static final String LIST ="http://127.0.0.1:8080/tom/list.xml";
	public static String tableName="main_menu",strCurrTable=null,strPreTable=null;
	
	
	
	
	
	
	
	
	//private static short scene[][][];
	
   private final static int OBJECT_BUTTON=1;// the button id 
	
#if(${ant.handset_sound}!="none")
   private Object musicPlayer;
#end	
	protected void initialize(){
		super.initialize();
		objectButton = OBJECT_BUTTON;
	}
	protected void stateEnter() {
		switch (state) {
		case STATE_MENU_START:
		case STATE_MENU_STAGE:
			enterMenu();
			return;
		case STATE_LOGO_GAME_EXIT:
			enterLogoExit();
			return;
		case STATE_MENU_HELP:
			enterMenuHelp();
			return;
		case STATE_MENU_SCORE:
			enterMenuScore();
			return;
		case STATE_GAME_LEVEL_SUCCESS:
			enterLevelSuccess();
			return;
		case STATE_GAME_LEVEL_FAILURE:
			enterLevelFailure();
			return;
		case STATE_GAME_PASS:
			enterGamePass();
			return;
		case STATE_MENU_OPTION:
			enterMenuOption();
			return;
		}

		super.stateEnter();
	}

	
	protected void stateLeave() {
		switch(state){
		case STATE_LOGO_TWO:
			leaveLogoTwo();
			return;
		case STATE_TITLE:
			leaveTitle();
			return;
		case STATE_GAME_PASS:
			leaveGamePass();
			return;
		case STATE_GAME_START:
			leaveGame();
			return;
		}
		super.stateLeave();
	}

	protected void gameInput() {
		switch (state) {
		case STATE_MENU_START:
		case STATE_MENU_STAGE:
			inputMenu();
			return;
		case STATE_GAME_START:
			inputGame();
			return;
		case STATE_LOGO_GAME_EXIT:
			inputLogoExit();
			return;
		case STATE_MENU_HELP:
			inputMenuHelp();
			return;
		case STATE_MENU_SCORE:
			inputMenmuScore();
			return;
		case STATE_GAME_LEVEL_SUCCESS:
			inputLevelSuccess();
			return;
		case STATE_GAME_LEVEL_FAILURE:
			inputLevelFailure();
			return;
		case STATE_GAME_PASS:
			inputGamePass();
			return;
		case STATE_MENU_OPTION:
			inputMenuOption();
			return;
		}

		super.gameInput();
	}

	protected void gameLogic() {
		switch (state) {
		case STATE_MENU_START:
		case STATE_MENU_STAGE:
			logicMenu();
			return;
		
		case STATE_LOGO_GAME_EXIT:
			logicLogoExit();
			return;

		case STATE_MENU_HELP:
			//logicMenuHelp();
			return;
		case STATE_MENU_SCORE:
			//logicMenmuScore();
			return;
		case STATE_GAME_LEVEL_SUCCESS:
			logicLevelSuccess();
			return;
		case STATE_GAME_LEVEL_FAILURE:
			logicLevelFailure();
			return;
		case STATE_GAME_PASS:
			logicGamePass();
			return;
		case STATE_MENU_OPTION:
			logicMenuOption();
			return;
		}

		super.gameLogic();
	}

	protected void gamePaint(Graphics g) {
		switch (state) {
		case STATE_MENU_START:
		case STATE_MENU_STAGE:
			paintMenu(g);
			return;
		case STATE_GAME_START:
			paintGame(g);
			return;
		
		case STATE_LOGO_GAME_EXIT:
			paintLogoExit(g);
			return;
		
		case STATE_MENU_HELP:
			paintMenuHelp(g);
			return;
		case STATE_MENU_SCORE:
			paintMenmuScore(g);
			return;
		case STATE_GAME_LEVEL_SUCCESS:
			paintLevelSuccess(g);
			return;
		case STATE_GAME_LEVEL_FAILURE:
			paintLevelFailure(g);
			return;
		case STATE_GAME_PASS:
			paintGamePass(g);
			return;
		case STATE_MENU_OPTION:
			paintMenuOption(g);
			return;
		}

		super.gamePaint(g);
	}

	
	// ************************************
	// logo
	// ************************************

	//private static final int OBJECT_LOGO_ONE = 0;

	private static final int OBJECT_LOGO_TWO = 0;
	
	

	
	private Image imgCMCC,imgBBX;
	protected void enterLogo() {
		super.enterLogo();

		showInfo("enter Logo:");
		try{
				imgCMCC=Image.createImage("/1.png");
				imgBBX=Image.createImage("/2.png");
		}catch(Exception e){
			
		}

		if(state==STATE_LOGO_TWO){
			loadObject(OBJECT_LOGO_TWO);
			loadImage();
		}

	}

	protected void logicLogo() {
		if ((state == STATE_LOGO_ONE) && (counter == 10)) {
			repaint = true;
			return;
		}

		super.logicLogo();
	}
	private void leaveLogoTwo(){
		imgCMCC=null;
		imgBBX=null;
		System.gc();
		//showInfo("leave Logo");
	}
	protected void paintLogo(Graphics g) {
		super.paintLogo(g);

		switch (state) {
		case STATE_LOGO_ONE:
			if (counter < 10) {
				g.drawImage(imgCMCC,width/2,height/2,Graphics.VCENTER|Graphics.HCENTER);
			} else {
			//	drawObject(g, OBJECT_LOGO_ONE, 1, 0, width / 2, height / 2);
				g.drawImage(imgBBX,width/2,height/2,Graphics.VCENTER|Graphics.HCENTER);
			}
			break;

		case STATE_LOGO_TWO:
			drawObject(g, OBJECT_LOGO_TWO, 0, 0, width / 2, height / 2);
			break;
		}
	}

	//**********************************
	// exit game logo
	//**********************************
	private void enterLogoExit(){
		setSoftkey(SOFTKEY_NONE,SOFTKEY_NONE);
		counter=0;
		unloadImage();

		
		loadObject(OBJECT_LOGO_TWO);
		
		loadImage();
	}
	private void inputLogoExit(){
		if(counter>5&&counter<20){
			counter=20;
		}
		else{
			exit();
		}
	}
	private void logicLogoExit(){
		repaint = true;
	}
	private void paintLogoExit(Graphics g){
		g.setColor(0x000000);
		g.fillRect(0, 0, width, height);
		if(counter<20){
			drawObject(g, OBJECT_LOGO_TWO, 0, 0, width / 2, height / 2);
		}
		else if(counter<40){
			drawObject(g, OBJECT_LOGO_TWO, 1, 0, width / 2, height / 2);
			String strTmp;
			strTmp="@TXT_EXIT_THANKS@";
			g.setColor(0xffffff);
			g.drawString(strTmp,width/2-font.stringWidth(strTmp)/2,height/2,Graphics.TOP|Graphics.LEFT);
		}
		else{
			exit();
		}
	}
	
	// ************************************
	// title
	// ************************************

	//private static final int 
	private static final int SCENE_TITLE_BG = 10;
	private  static short sceneTitleBg[][][];

	private static Image imgTitleBg;
	
	protected void enterTitle() {
		super.enterTitle();

				
		//loadRecord();
	}

	
	protected void paintTitle(Graphics g) {
		g.fillRect(0,0,width,height);
		g.setColor(255,0,0);
		g.drawString("Title:",width/2,height/2,Graphics.TOP|Graphics.LEFT);
	}
	
	protected void inputTitle(){
		//unloadImage();
		setState(STATE_MENU_MAIN);
	}
	
	protected void leaveTitle(){
		setState(STATE_PARSERLIST);
	}
	
	protected void logicTitle() {
		repaint=true;
		
	}
	//*************************************
	//parsermainlist
	//*************************************
	protected void enterParserList() {
		
	}

	
	protected void paintParserList(Graphics g) {
		g.fillRect(0,0,width,height);
		g.setColor(255,0,0);
		g.drawString("Title:",width/2,height/2,Graphics.TOP|Graphics.LEFT);
	}
	
	protected void inputParserList(){
		//unloadImage();
		setState(STATE_MENU_MAIN);
	}
	
	protected void leaveParserList(){
		setState(STATE_PARSERLIST);
	}
	
	protected void logicParserList() {
		repaint=true;
		
	}
	
	// ************************************
	// menu
	// ************************************

	XMenuThree menu;
	String[] strItems;
	int rectX,rectY,rectWidth,rectHeight;
	private static int menuType=0;//0:main menu; 1: pause menu
	
	private static final int OBJECT_MENU_ITEM=-1;
	private static final int ITEM_HEIGHT=20;
	
	protected void enterMenu() {
		
#if(${ant.handset_sound}!="none")
		deleteMusic(musicPlayer);
		musicPlayer=createMusic("/back");
		stopLoop();
#end
		setSoftkey(SOFTKEY_OK,SOFTKEY_NONE);
		
		if(menuType==0){
			
			if(bCanContinueGame){
				menuType=2;//can continue game;
				String[] strTmp={
						"@MENU_MAIN_CONTINUE@",
						"@MENU_MAIN_GAME@",
						#if(${ant.handset_sound}!="none")
						"@MENU_MAIN_OPTION@",
						#end
						"@MENU_MAIN_HELP@",
						"@MENU_MAIN_HIGHSCORE@",
						"@MENU_MAIN_EXIT@",
					    };
						strItems=new String[strTmp.length];
						for(int i=0;i<strTmp.length;i++){
							strItems[i]=strTmp[i];
						}
			}
			else{
				String[] strTmp={
				
				"@MENU_MAIN_GAME@",
				#if(${ant.handset_sound}!="none")
				"@MENU_MAIN_OPTION@",
				#end
				"@MENU_MAIN_HELP@",
				"@MENU_MAIN_HIGHSCORE@",
				"@MENU_MAIN_EXIT@",
			    };
				strItems=new String[strTmp.length];
				for(int i=0;i<strTmp.length;i++){
					strItems[i]=strTmp[i];
				}
			}
		}
		else if(menuType==1){//pause menu
			bSavedSuccessful=false;
			String[] strTmp={
					"@MENU_MAIN_RESUME@",
					"@MENU_MAIN_SAVE@",
					"@MENU_MAIN_GAME@",
					#if(${ant.handset_sound}!="none")
					"@MENU_MAIN_OPTION@",
					#end
					"@MENU_MAIN_HELP@",
					"@MENU_MAIN_HIGHSCORE@",
					"@MENU_MAIN_EXIT@",
			    };
				strItems=new String[strTmp.length];
				for(int i=0;i<strTmp.length;i++){
					strItems[i]=strTmp[i];
				}
		}
		else if(menuType==2){
			
			bCanContinueGame=true;
			String[] strTmp={
					"@MENU_MAIN_CONTINUE@",
					"@MENU_MAIN_GAME@",
					#if(${ant.handset_sound}!="none")
					"@MENU_MAIN_OPTION@",
					#end
					"@MENU_MAIN_HELP@",
					"@MENU_MAIN_HIGHSCORE@",
					"@MENU_MAIN_EXIT@",
				    };
					strItems=new String[strTmp.length];
					for(int i=0;i<strTmp.length;i++){
						strItems[i]=strTmp[i];
					}
		}
		
#if($ant.handset_screen=="screen_s") 
		menu=new XMenuThree(this,strItems,height/2-20,OBJECT_MENU_ITEM,ITEM_HEIGHT+2);
#else
		menu=new XMenuThree(this,strItems,height/2,OBJECT_MENU_ITEM,ITEM_HEIGHT+2);
#end
		rectX=menu.xPos-22;
		rectY=menu.yPos-10;
		rectWidth=menu.maxItemWidth+44;
		rectHeight=menu.SHOW_ITEMS*(fontHeight+1)+20;
		
		
	}
	protected void logicMenu(){
		
	}
	//menu height:SHOW_ITEMS*(game.fontHeight+1)+2
	//menu width: maxItemWidth+2
	//private final static int MENU_BEGIN_X
	protected void paintMenu(Graphics g) {
		
		drawMenuBackGround(g);
		
		//		mermaid
        
		
		//draw menu items
		menu.paint(g ,0xffff00, 0xaaaaaa, 0xff0000);
		
		//draw arrow
		if(menu.selectedItem>0){
			//drawObject(g,OBJECT_MENU_IMG,3,0,width/2,menu.yPos);//up arrow
		}

⌨️ 快捷键说明

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