📄 drawtools.java
字号:
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
//RMS related
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;
import java.io.ByteArrayInputStream; //要使用到的各种输入输出流
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import javax.microedition.media.*;
import javax.microedition.media.control.*;
import java.io.*;
import java.util.*;
import java.lang.*;
public class DrawTools {
private static int m_switchIndex[]=new int[2];
//constant macro
final static public int ANCHOR_TOPLEFT = Graphics.TOP | Graphics.LEFT;
public final static int BUTTON_SPRITE_COUNTS = 2;
public final static int PANEL_COUNTS=2;
private final static int MENU_BUTTON_COUNTS = 5;
public final static int KEY_CODE_UP=-1;
public final static int KEY_CODE_DOWN=-2;
public final static int KEY_CODE_SELECT=-5;
public final static int KEY_CODE_LSK=-6;
public final static int KEY_CODE_RSK=-7;
//switch word
public final static int SWITCH_WORD_COUNTS=2;
public final static int SWITCH_WORD_WIDTH=15;
public final static int SWITCH_WORD_HEIGHT=15;
public final static int SWITCH_LINE_FOCUSED=0;
public final static int SWITCH_OPEN_FOCUSED=1;
public final static int SWITCH_CLOSE_FOCUSED=2;
public final static int SWITCH_LINE_UNFOCUSED=3;
public final static int SWITCH_OPEN_UNFOCUSED=4;
public final static int SWITCH_CLOSE_UNFOCUSED=5;
public final static int SWITCH_OPEN=1;
public final static int SWITCH_CLOSE=2;
//object width/height
public final static int BUTTON_IMAGE_WIDTH = 41;
public final static int BUTTON_IMAGE_HEIGHT = 17;
public final static int BACKGROUND_WIDTH = 240;
public final static int BACKGROUND_HEIGHT = 280;
public final static int PANEL_WIDTH=240;
public final static int PANEL_HEIGHT=20;
//menu_button.png
public final static int MENU_BUTTON_WIDTH=106;
public final static int MENU_BUTTON_HEIGHT=20;
private final static int MENU_BUTTON_GAP=4;//二个MENU BUTTON之间的高度
//menu_word.png
public final static int MENU_WORD_WIDTH=60;
public final static int MENU_WORD_HEIGHT=20;
//factory_property.png
public final static int PROPERTY_WIDTH=28;
public final static int PROPERTY_HEIGHT=28;
//enemy_num.png
public final static int ENEMY_NUM_WIDTH=7;
public final static int ENEMY_NUM_HEIGHT=10;
//progress.png
public final static int PROGRESS_BAR_WIDTH=196;
public final static int PROGRESS_BAR_HEIGHT=16;
public final static int PROGRESS_MISSILE_WIDTH=211;
public final static int PROGRESS_MISSILE_HEIGHT=12;
private final static int PROGRESS_BAR_X=23;
private final static int PROGRESS_BAR_Y=152;
//object index
//index in menu_button.png
public final static int MENU_BUTTON_INDEX_CHOSEN=0;
public final static int MENU_BUTTON_INDEX_UNCHOSEN=1;
//index in menu_word.png
public final static int MENU_BUTTON_WORD_INDEX_POP_CHOSEN=0;
public final static int MENU_BUTTON_WORD_INDEX_POP_UNCHOSEN=1;
public final static int MENU_BUTTON_WORD_INDEX_WAR_CHOSEN=2;
public final static int MENU_BUTTON_WORD_INDEX_WAR_UNCHOSEN=3;
public final static int MENU_BUTTON_WORD_INDEX_MUSIC_CHOSEN=4;
public final static int MENU_BUTTON_WORD_INDEX_NUSIC_UNCHOSEN=5;
public final static int MENU_BUTTON_WORD_INDEX_TRAINING_CHOSEN=6;
public final static int MENU_BUTTON_WORD_INDEX_TRAINING_UNCHOSEN=7;
public final static int MENU_BUTTON_WORD_INDEX_BACKWAR_CHOSEN=8;
public final static int MENU_BUTTON_WORD_INDEX_BACKWAR_UNCHOSEN=9;
public final static int MENU_BUTTON_WORD_INDEX_LOAD_CHOSEN=10;
public final static int MENU_BUTTON_WORD_INDEX_LOAD_UNCHOSEN=11;
public final static int MENU_BUTTON_WORD_INDEX_MAINMENU_CHOSEN=12;
public final static int MENU_BUTTON_WORD_INDEX_MAINMENU_UNCHOSEN=13;
public final static int MENU_BUTTON_WORD_INDEX_LOADDOC_CHOSEN=14;
public final static int MENU_BUTTON_WORD_INDEX_LOADDOC_UNCHOSEN=15;
public final static int MENU_BUTTON_WORD_INDEX_BACKMENU_CHOSEN=16;
public final static int MENU_BUTTON_WORD_INDEX_BACKMENU_UNCHOSEN=17;
public final static int MENU_BUTTON_WORD_INDEX_READ_CHOSEN=18;
public final static int MENU_BUTTON_WORD_INDEX_READ_UNCHOSEN=19;
public final static int MENU_BUTTON_WORD_INDEX_ABOUTGAME_CHOSEN=20;
public final static int MENU_BUTTON_WORD_INDEX_ABOUTGAME_UNCHOSEN=21;
//index in factory_icon_word.png
public final static int TITLE_INDEX_CHOOSETANK=3;
public final static int TITLE_INDEX_SAVERECORD=2;
public final static int TITLE_INDEX_LOADRECORD=7;
public final static int TITLE_INDEX_ENTERINTOWAR=4;
//index in factory_bottom_word.png
public final static int BUTTON_INDEX_CONFIRM = 0;
public final static int BUTTON_INDEX_MENU = 1;
public final static int BUTTON_INDEX_BACK = 2;
public final static int BUTTON_INDEX_CONTINUE = 3;
public final static int BUTTON_INDEX_EXIT = 4;
public final static int BUTTON_INDEX_FACTORY = 5;
public final static int BUTTON_INDEX_SKIP = 6;
public final static int BUTTON_INDEX_SAVE = 7;
//index in factory_property.png
public final static int PROPERTY_INDEX_UP_PRESSED = 14;
public final static int PROPERTY_INDEX_UP = 10;
public final static int PROPERTY_INDEX_DOWN_PRESSED = 15;
public final static int PROPERTY_INDEX_DOWN = 11;
public final static int PROPERTY_INDEX_LEFT_PRESSED = 16;
public final static int PROPERTY_INDEX_LEFT = 12;
public final static int PROPERTY_INDEX_RIGHT_PRESSED = 17;
public final static int PROPERTY_INDEX_RIGHT = 13;
public final static int PROPERTY_INDEX_FOCUSED = 0;
public final static int PROPERTY_INDEX_UNFOCUSED = 1;
public final static int PROPERTY_INDEX_PROPERTY = 18;
public final static int PROPERTY_INDEX_OPERATE = 19;
//index in enemy_num.png
//object positon(x,y)
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;
public static void displayButton(Sprite[] m_buttonSprite,int buttonCounts,int[]buttonIndex) {
try {
if (2 == buttonCounts) {
if(false==m_buttonSprite[0].isVisible()){
m_buttonSprite[0].setVisible(true);
}
if(false==m_buttonSprite[1].isVisible()){
m_buttonSprite[1].setVisible(true);
}
m_buttonSprite[0].setFrame(buttonIndex[0]);
m_buttonSprite[0].setRefPixelPosition(LEFT_SOFTKEY_X, LEFT_SOFTKEY_Y);
m_buttonSprite[1].setFrame(buttonIndex[1]);
m_buttonSprite[1].setRefPixelPosition(RIGHT_SOFTKEY_X, RIGHT_SOFTKEY_Y);
}else if(1==buttonCounts){
if(false==m_buttonSprite[1].isVisible()){
m_buttonSprite[1].setVisible(true);
}
if(true==m_buttonSprite[0].isVisible()){
m_buttonSprite[0].setVisible(false);
}
m_buttonSprite[1].setFrame(buttonIndex[0]);
m_buttonSprite[1].setRefPixelPosition(RIGHT_SOFTKEY_X, RIGHT_SOFTKEY_Y);
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
public static void displayBackground(Sprite[]m_panelSprite,Sprite m_backgroundImgSprite){
try {
m_backgroundImgSprite.setRefPixelPosition(0, DrawTools.PANEL_HEIGHT);
for (int i = 0; i < PANEL_COUNTS; i++) {
m_panelSprite[i].setFrame(i);
}
m_panelSprite[0].setRefPixelPosition(0, 0);
m_panelSprite[1].setRefPixelPosition(0, BACKGROUND_HEIGHT + PANEL_HEIGHT);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
public static void displayProgressBarScreen(Graphics g,
Image m_panel,
Image m_backgroundImg,
Image prgressBar,
Image progressMissile,
int percent){
System.gc();
try {
if(percent>=100){
percent=100;
}
int pos = (percent*PROGRESS_BAR_WIDTH)/100;
//1.draw panel
//2.draw progress_missile and progress bar image;
//3.draw background image
DrawTools.XDrawImage(g,m_panel,0,0,0,0,PANEL_WIDTH,PANEL_HEIGHT);
DrawTools.XDrawImage(g,m_panel,0,BACKGROUND_HEIGHT + PANEL_HEIGHT,0,PANEL_HEIGHT,PANEL_WIDTH,PANEL_HEIGHT);
DrawTools.XDrawImage(g,m_backgroundImg,0,PANEL_HEIGHT,0,0,GameLogic.MAP_WIDTH,GameLogic.MAP_HEIGHT);
//draw progress bar
DrawTools.XDrawImage(g,prgressBar,PROGRESS_BAR_X,PROGRESS_BAR_Y,0,0,PROGRESS_BAR_WIDTH,PROGRESS_BAR_HEIGHT);
//draw missile progress
DrawTools.XDrawImage(g,progressMissile,PROGRESS_BAR_X,PROGRESS_BAR_Y+2,PROGRESS_MISSILE_WIDTH-pos,0,pos,PROGRESS_MISSILE_HEIGHT);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
public static void createMenuButton(LayerManager m_layerManager,
Sprite[] m_menuWordImgSprite,
Sprite[] m_menuButtonImgSprite,
Image m_menuButtonImg,
Image m_menuWordImg) {
try {
m_menuButtonImg = Image.createImage("/tank/map_res/menu_button.png");
m_menuWordImg = Image.createImage("/tank/map_res/menu_word.png");
//MENU BUTTON
m_menuButtonImgSprite = new Sprite[MENU_BUTTON_COUNTS];
for (int i = 0; i < MENU_BUTTON_COUNTS; i++) {
m_menuButtonImgSprite[i] = new Sprite(m_menuButtonImg,
DrawTools.MENU_BUTTON_WIDTH,
DrawTools.MENU_BUTTON_HEIGHT);
m_menuButtonImgSprite[i].setVisible(false);
m_layerManager.insert(m_menuButtonImgSprite[i], 0);
}
m_menuWordImgSprite=new Sprite[MENU_BUTTON_COUNTS];
for (int i = 0; i < MENU_BUTTON_COUNTS; i++) {
m_menuWordImgSprite[i]=new Sprite(m_menuWordImg,DrawTools.MENU_WORD_WIDTH,
DrawTools.MENU_WORD_HEIGHT);
m_menuWordImgSprite[i].setVisible(false);
m_layerManager.insert(m_menuWordImgSprite[i], 0);
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
public static void displayMenuButton(Sprite[] m_menuButtonImgSprite,
Sprite[] m_menuWordImgSprite,
Sprite[] m_switchImgSprite,
int menuButtonPosX,
int menuButtonPosY,
int switchState,
int[] chosenWordIndex,
int[] unchosenWordIndex,
int m_currentMenuButtonIndex,
int menuButtonCounts) {
try {
if (null == m_menuButtonImgSprite || null == m_menuWordImgSprite) {
return;
}
if (m_currentMenuButtonIndex >= menuButtonCounts) {
m_currentMenuButtonIndex = menuButtonCounts - 1;
}
else if (m_currentMenuButtonIndex <= 0) {
m_currentMenuButtonIndex = 0;
}
//menu button/menu word全不选中
for (int i = 0; i < menuButtonCounts; i++) {
if (false == m_menuButtonImgSprite[i].isVisible()) {
m_menuButtonImgSprite[i].setVisible(true);
}
m_menuButtonImgSprite[i].setFrame(MENU_BUTTON_INDEX_UNCHOSEN);
m_menuButtonImgSprite[i].setRefPixelPosition(menuButtonPosX,
menuButtonPosY + i * (MENU_BUTTON_HEIGHT + MENU_BUTTON_GAP));
if (false == m_menuWordImgSprite[i].isVisible()) {
m_menuWordImgSprite[i].setVisible(true);
}
m_menuWordImgSprite[i].setFrame(unchosenWordIndex[i]);
m_menuWordImgSprite[i].setRefPixelPosition(menuButtonPosX,
menuButtonPosY + i * (MENU_BUTTON_HEIGHT + MENU_BUTTON_GAP));
if (MENU_BUTTON_WORD_INDEX_MUSIC_CHOSEN == chosenWordIndex[i]) {
if(false == m_switchImgSprite[0].isVisible()){
m_switchImgSprite[0].setVisible(true);
}
if(false == m_switchImgSprite[1].isVisible()){
m_switchImgSprite[1].setVisible(true);
}
getMusicState(switchState,false);
//display "-"
m_switchImgSprite[0].setFrame(m_switchIndex[0]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -