📄 xgame.java
字号:
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.*;
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
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() {
setSoftkey(SOFTKEY_OK,SOFTKEY_NONE);
if(menuType==0){
if(bCanContinueGame){
menuType=2;//can continue game;
String[] strTmp={
"@MENU_MAIN_CONTINUE@",
"@MENU_MAIN_GAME@",
"@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@",
"@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@",
"@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@",
"@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];
}
}
menu=new XMenuThree(this,strItems,height/2,OBJECT_MENU_ITEM,ITEM_HEIGHT+2);
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);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -