📄 gameoptions.java
字号:
m_layerManager.insert(m_menuWordImgSprite[i], 0);
}
DrawTools.displayMenuButton(
m_menuButtonImgSprite,
m_menuWordImgSprite,
null,
MENU_BUTTON_X,
MENU_BUTTON_Y,
-1,
chosenWordIndex,
unchosenWordIndex,
m_currentMenuButtonIndex,
MENU_BUTTON_COUNTS);
m_currentMenuButtonIndex = 0;
}
catch (Exception ex) {
ex.printStackTrace();
}
}
public GameOptions() {
super(false);
m_threadAlive=true;
loadResource();
}
private void displayMenuButton(){
try {
if(m_currentMenuButtonIndex>=MENU_BUTTON_COUNTS){
m_currentMenuButtonIndex=MENU_BUTTON_COUNTS-1;
}else if(m_currentMenuButtonIndex<=0){
m_currentMenuButtonIndex=0;
}
//menu button/menu word全不选中
for (int i = 0; i < MENU_BUTTON_COUNTS; i++) {
m_menuButtonImgSprite[i].setFrame(MENU_BUTTON_INDEX_UNCHOSEN);
m_menuWordImgSprite[i].setFrame(MENU_BUTTON_WORD_INDEX_POP_UNCHOSEN+i*2);
}
m_menuButtonImgSprite[m_currentMenuButtonIndex].setFrame(MENU_BUTTON_INDEX_CHOSEN);
m_menuWordImgSprite[m_currentMenuButtonIndex].setFrame(MENU_BUTTON_WORD_INDEX_POP_CHOSEN+m_currentMenuButtonIndex*2);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private void drawMenuRect(Graphics g) {
try {
g.setColor(127, 255, 0); //淡绿色
g.drawRect(MENU_RECT_X, MENU_RECT_Y, MENU_RECT_WIDTH, MENU_RECT_HEIGHT);
g.setColor(0, 0, 0);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private String getCmdString(int index){
String cmd=null;
switch(index){
case 0:
cmd="recommend";
break;
case 1:
cmd="enterintowar";
break;
case 2:
cmd="training";
break;
case 3:
cmd="aboutthegame";
break;
default:
break;
}
return cmd;
}
protected void showNotify(){
try {
if(m_threadAlive==false){
m_threadAlive=true;
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
//from show to pause
protected void hideNotify(){
try {
m_threadAlive=false;
}
catch (Exception ex) {
ex.printStackTrace();
}
}
protected void keyPressed(int keyCode){
//System.out.println(keyCode);
String cmd=null;
if (KEY_CODE_LSK == keyCode || DrawTools.KEY_CODE_SELECT == keyCode) {
cmd = getCmdString(m_currentMenuButtonIndex);
if (null == cmd) {
return;
}
stop();
Navigator.flow(cmd);
}
else if (KEY_CODE_RSK == keyCode) {
cmd = "back";
stop();
Navigator.flow(cmd);
}
else if (DrawTools.KEY_CODE_UP == keyCode) {
m_currentMenuButtonIndex--;
if (m_currentMenuButtonIndex <= 0) {
m_currentMenuButtonIndex = 0;
}
if (m_currentMenuButtonIndex >= MENU_BUTTON_COUNTS) {
m_currentMenuButtonIndex = MENU_BUTTON_COUNTS - 1;
}
DrawTools.displayMenuButton(
m_menuButtonImgSprite,
m_menuWordImgSprite,
null,
MENU_BUTTON_X,
MENU_BUTTON_Y,
-1,
chosenWordIndex,
unchosenWordIndex,
m_currentMenuButtonIndex,
MENU_BUTTON_COUNTS);
}
else if (DrawTools.KEY_CODE_DOWN == keyCode) {
m_currentMenuButtonIndex++;
if (m_currentMenuButtonIndex <= 0) {
m_currentMenuButtonIndex = 0;
}
if (m_currentMenuButtonIndex >= MENU_BUTTON_COUNTS) {
m_currentMenuButtonIndex = MENU_BUTTON_COUNTS - 1;
}
DrawTools.displayMenuButton(
m_menuButtonImgSprite,
m_menuWordImgSprite,
null,
MENU_BUTTON_X,
MENU_BUTTON_Y,
-1,
chosenWordIndex,
unchosenWordIndex,
m_currentMenuButtonIndex,
MENU_BUTTON_COUNTS);
}
}
protected void keyReleased(int keyCode) {
//System.out.println(keyCode);
if (KEY_CODE_LSK == keyCode) {
}
else if (KEY_CODE_RSK == keyCode) {
}
}
private void input(){
int keyState = getKeyStates();
if((keyState & LEFT_PRESSED) != 0){
}else if((keyState & RIGHT_PRESSED) != 0){
}else if((keyState & UP_PRESSED) != 0){
}else if((keyState & DOWN_PRESSED) != 0){
}
}
public void run() {
if(!m_threadAlive){
return;
}
Graphics g=m_graphics;
input();
if(null!=m_layerManager){
m_layerManager.paint(g,0,0);
}
//full screen refresh
g.setClip(0, 0, getWidth(), getHeight());
drawMenuRect(g);
flushGraphics();
}
public static void pause(){
m_threadAlive=true;
}
public static void stop(){
//release all the resources
m_threadAlive=false;
releaseResources();
System.gc();
}
}
class ChooseTankScreen extends GameCanvas{
private static ChooseTankScreen instance;
private static LayerManager m_layerManager;
private static boolean m_threadAlive;
private static Graphics m_graphics;
//title
private String m_title;
private static Image m_backgroundImg; //背景
private static Sprite m_backgroundImgSprite;
private static Image m_panel; //上下PANEL
private static Sprite[] m_panelSprite;
//button sprite
private static Sprite[] m_buttonSprite;
private static Image m_buttonImage;
//titles
private static Image m_titleImage;
private static Sprite m_titleImageSprite;
private static Image m_factoryIconImage;
private static Sprite m_factoryIconImageSprite;
//tank choice
private static Image m_chooseTankImage;
private static Sprite []m_chooseTankImageSprite;
private static Sprite m_focusedSprite;
private int m_tankType;
//tank choice word
private static Image m_chooseTankWordImage;
//commander icon
private static Image m_commanderIconImage;
private static Sprite m_commanderIconImageSprite;
private int m_currentFocusSprite;
private int m_currentMaxSprite;//only the available tank can be choosen
//titles
private final static int TITLE_INDEX_CHOOSETANK=3;
//index
private final static int BUTTON_INDEX_CONFIRM = 0;
private final static int BUTTON_INDEX_MENU = 1;
private final static int BUTTON_INDEX_BACK = 2;
private final static int BUTTON_INDEX_CONTINUE = 3;
private final static int BUTTON_INDEX_EXIT = 4;
private final static int TANK_CHOICE_INDEX_FOCUSED=0;
private final static int TANK_CHOICE_INDEX_ONE=1;
private final static int TANK_CHOICE_INDEX_TWO=2;
private final static int TANK_CHOICE_INDEX_THREE=3;
private final static int TANK_CHOICE_INDEX_RETIRED=4;
private final static int TANK_CHOICE_INDEX_FUTURE1=5;
private final static int TANK_CHOICE_INDEX_FUTURE2=6;
private final static int TANK_CHOICE_INDEX_FUTURE3=7;
private final static int KEY_CODE_LSK=-6;
private final static int KEY_CODE_RSK=-7;
private final static int POINTS_FUTURE_TANK=500000;
//object width/height
private final static int BACKGROUND_WIDTH = 240;
private final static int BACKGROUND_HEIGHT = 280;
private final static int PANEL_WIDTH = 240;
private final static int PANEL_HEIGHT = 20;
private final static int BUTTON_IMAGE_WIDTH=41;
private final static int BUTTON_IMAGE_HEIGHT=17;
private final static int TITLE_IMAGE_WIDTH = 82;
private final static int TITLE_IMAGE_HEIGHT = 21;
private final static int TITLE_ICON_IMAGE_WIDTH = 153;
private final static int TITLE_ICON_IMAGE_HEIGHT = 37;
private final static int COMMANDER_ICON_WIDTH=111;
private final static int COMMANDER_ICON_HEIGHT=111;
private final static int CHOOSE_TANK_IMAGE_WIDTH=66;
private final static int CHOOSE_TANK_IMAGE_HEIGHT=66;
private final static int CHOOSE_TANK_WORD_IMAGE_WIDTH=15;
private final static int CHOOSE_TANK_WORD_IMAGE_HEIGHT=16;
private final static int BULLET_WIDTH=3;
private final static int BULLET_HEIGHT=7;
private final static int BULLET_GAP=4;
private final static int BULLET_BLOOD_GAP=16;
private final static int BULLET_COLON_GAP=12;
private final static int BULLET_LEVEL_GAP=20;
//object counts
private final static int PANEL_COUNTS = 2;
private final static int QUESTION_MARK_COUNTS=5;
private final static int BUTTON_SPRITE_COUNTS = 2;
private final static int CHOOSE_TANK_SPRITE_COUNTS=4;
private final static int ATTACK_RETIRED_TANK=1;//1X10
private final static int ATTACK_FUTURE_TANK_ONE=3;//30X1
private final static int ATTACK_FUTURE_TANK_TWO=5;//50X1
private final static int ATTACK_FUTURE_TANK_THREE=3;//10X3
private final static int BLOOD_RETIRED_TANK=1;//1X10
private final static int BLOOD_FUTURE_TANK_ONE=4;//30X1
private final static int BLOOD_FUTURE_TANK_TWO=4;//50X1
private final static int BLOOD_FUTURE_TANK_THREE=4;//0X3
//position constant
private final static int LEFT_SOFTKEY_X = 16;
private final static int LEFT_SOFTKEY_Y = 303;
private final static int RIGHT_SOFTKEY_X = 185;
private final static int RIGHT_SOFTKEY_Y = 303;
private final static int TITLE_X = 86;
private final static int TITLE_Y = 4;
private final static int TITLE_ICON_X = 49;
private final static int TITLE_ICON_Y = 2;
private final static int COMMANDER_ICON_X=14;
private final static int COMMANDER_ICON_Y=70;
private final static int BULLET_ONE_X=192;
private final static int BULLET_ONE_Y=75;
private final static int BULLET_TWO_X=192;
private final static int BULLET_TWO_Y=175;
private final static int BULLET_THREE_X=130;
private final static int BULLET_THREE_Y=230;
private final static int BULLET_FOUR_X=26;
private final static int BULLET_FOUR_Y=248;
private final static int WORD_RETIRED_TANK_X=176;
private final static int WORD_RETIRED_TANK_Y=50;
private final static int WORD_FUTURE_TANK_ONE_X=190;
private final static int WORD_FUTURE_TANK_ONE_Y=154;
private final static int WORD_FUTURE_TANK_TWO_X=134;
private final static int WORD_FUTURE_TANK_TWO_Y=214;
private final static int WORD_FUTURE_TANK_THREE_X=42;
private final static int WORD_FUTURE_TANK_THREE_Y=230;
//tank choice icon start position
private final static int CHOICE_ONE_X=128;
private final static int CHOICE_ONE_Y=64;
private final static int CHOICE_TWO_X=138;
private final static int CHOICE_TWO_Y=134;
private final static int CHOICE_THREE_X=90;
private final static int CHOICE_THREE_Y=184;
private final static int CHOICE_FOUR_X=16;
private final static int CHOICE_FOUR_Y=188;
//BLOOD LEVEL /attack level position
private final static int ATTACK_LEVEL_X=54;
private final static int ATTACK_LEVEL_Y=3;
private final static int BLOOD_LEVEL_X=70;
private final static int BLOOD_LEVEL_Y=3;
//LOAD RECORD/NEW GAME
synchronized public static ChooseTankScreen getInstance() {
if (instance == null)
instance = new ChooseTankScreen();
return instance;
}
private void loadResource() {
try {
m_graphics=getGraphics();
createBackground();
createButton();
createTitle(TITLE_INDEX_CHOOSETANK);
createTankChoice();
createTankParam();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private int getGamePoints(){
try {
}
catch (Exception ex) {
ex.printStackTrace();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -