📄 gameoptions.java
字号:
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import java.lang.*;
import javax.microedition.lcdui.game.*;
import java.util.*;
class AboutTheGameScreen extends GameCanvas{
private static AboutTheGameScreen instance;
private static boolean m_threadAlive;
private static LayerManager m_layerManager;
private static Font m_font;
private static Graphics m_graphics;
//background res
private static Image m_backgroundImg; //背景
private static Sprite m_backgroundImgSprite;
public static Image m_panel; //上下PANEL
private static Sprite[] m_panelSprite;
//button res
private static Sprite[] m_buttonSprite;
private static Image m_buttonImage;
//menu button res
private static Image m_menuButtonImg; //menu_button.png
private static Image m_menuWordImg; //
private static Sprite[] m_menuWordImgSprite;
private static Sprite[] m_menuButtonImgSprite;
private final static String[]aboutContent={
"坦克突击2008","V1.0","@2008 TechFaith","www.techfaithsoftware.com;",
"制作组;","制作人","吴志勇;","策划","吴明;","美术","顾颖玲;","程序","张恺毅"
};
private final static int CONTENT_X=GameLogic.MAP_WIDTH/2;
private final static int CONTENT_Y=60;
private final static int STRING_LINE_COUNTS=13;
synchronized public static AboutTheGameScreen getInstance() {
if (instance == null)
instance = new AboutTheGameScreen();
return instance;
}
public static void createButton() {
try {
m_buttonImage = Image.createImage("/tank/map_res/factory_bottom_word.png");
//button,确定/返回
m_buttonSprite = new Sprite[DrawTools.BUTTON_SPRITE_COUNTS];
for (int i = 0; i < DrawTools.BUTTON_SPRITE_COUNTS; i++) {
m_buttonSprite[i] = new Sprite(m_buttonImage,
DrawTools.BUTTON_IMAGE_WIDTH,
DrawTools.BUTTON_IMAGE_HEIGHT);
m_layerManager.insert(m_buttonSprite[i], 0);
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
public static void createBackground() {
try {
m_backgroundImg = Image.createImage("/tank/map_res/tank_factory.png");
m_panel = Image.createImage("/tank/map_res/bottom.png");
m_backgroundImgSprite = new Sprite(m_backgroundImg,
DrawTools.BACKGROUND_WIDTH,
DrawTools.BACKGROUND_HEIGHT);
m_layerManager.insert(m_backgroundImgSprite, 0);
m_panelSprite = new Sprite[DrawTools.PANEL_COUNTS];
for (int i = 0; i < DrawTools.PANEL_COUNTS; i++) {
m_panelSprite[i] = new Sprite(m_panel, DrawTools.PANEL_WIDTH,
DrawTools.PANEL_HEIGHT);
m_layerManager.insert(m_panelSprite[i], 0);
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private AboutTheGameScreen(){
super(false);
m_threadAlive=true;
m_layerManager=new LayerManager();
setFullScreenMode(true);
m_font = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL);
m_graphics=getGraphics();
int []buttonIndex={DrawTools.BUTTON_INDEX_BACK};
createBackground();
createButton();
DrawTools.displayBackground(m_panelSprite,m_backgroundImgSprite);
DrawTools.displayButton(m_buttonSprite,1,buttonIndex);
}
private void displayAboutContent(Graphics g) {
try {
//white
g.setColor(255,255,255);
g.setFont(m_font);
//1.if(find ;) draw y coodinate add 20 pixels and x remain unchanged
//2. if(not find;)y coodinate add f.getHeight() pixels, and x remain unchanged;
int posX=CONTENT_X;
int posY=CONTENT_Y;
for(int i=0;i<STRING_LINE_COUNTS;i++){
g.drawString(aboutContent[i],posX,posY,Graphics.BASELINE|Graphics.HCENTER);
if(-1!=aboutContent[i].indexOf(";")){
posY+=20;
}
else{
posY+=m_font.getHeight();
}
}
g.setColor(0);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
protected void keyPressed(int keyCode){
if(DrawTools.KEY_CODE_RSK==keyCode){
String cmd="back";
stop();
Navigator.flow(cmd);
}
}
private void input() {
try {
int keyState = getKeyStates();
String cmd = null;
if ( (keyState & LEFT_PRESSED) != 0) {
}
else if ( (keyState & RIGHT_PRESSED) != 0) {
}
else if ( (keyState & UP_PRESSED) != 0) {
}
else if ( (keyState & DOWN_PRESSED) != 0) {
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
public static void pause(){
m_threadAlive=true;
}
public static void stop(){
if(m_layerManager==null){
return;
}
m_backgroundImg=null;
m_panel=null;
m_buttonImage=null;
m_menuButtonImg=null;
m_menuWordImg=null;
//release all the resources
m_threadAlive=false;
for (int i = 0; i < m_layerManager.getSize(); i++) {
Layer layer = m_layerManager.getLayerAt(i);
if (null != layer) {
m_layerManager.remove(layer);
layer = null;
}
}
m_layerManager=null;
instance=null;
System.gc();
}
public void run() {
try {
if (!m_threadAlive) {
return;
}
Graphics g = getGraphics();
g.setColor(255, 255, 255); //绘图色为白色 清屏
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0, 0, 0); //绘图色变成黑色,用来画字符串
input();
if (null != m_layerManager) {
m_layerManager.paint(g, 0, 0);
}
displayAboutContent(g);
flushGraphics();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
class StageClearScreen extends GameCanvas{
private static StageClearScreen instance;
private static LayerManager m_layerManager;
private static boolean m_threadAlive;
//图片资源
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;
//stage word
private static Image m_stageWordImage;
private static Image m_stageNumImage;
private static Image m_enemyImage;
private static Image m_bottomIconImage;
private static int m_currentRecord;
private static int m_currentStage;
private static int m_gamePoints;
//position(x,y)
private final static int STAGE_POS_X=78;
private final static int STAGE_POS_Y=63;
private final static int STAGE_NUM_GAP=28;
private final static int REGION_X=19;
private final static int REGION_Y=98;
private final static int SEPERATE_LINE_X=30;
private final static int SEPERATE_LINE_Y=193;
private final static int SEPERATE_LINE_WIDTH=180;
//width/height
private final static int STAGE_WORD_WIDTH=86;
private final static int STAGE_WORD_HEIGHT=25;
private final static int STAGE_NUM_WIDTH=17;
private final static int STAGE_NUM_HEIGHT=21;
private final static int REGION_WIDTH=204;
private final static int REGION_HEIGHT=130;
synchronized public static StageClearScreen getInstance() {
if (instance == null)
instance = new StageClearScreen();
return instance;
}
public static void setCurrentRecord(int record) {
m_currentRecord = record;
}
public static void setCurrentStage(int stage) {
m_currentStage = stage;
}
public static void setGamePoints(int points) {
m_gamePoints = points;
}
private StageClearScreen() {
super(false);
m_threadAlive=true;
m_layerManager = new LayerManager();
setFullScreenMode(true);
loadResource();
}
private static void releaseBackground(){
try {
m_backgroundImg=null;
m_panel=null;
if (null != m_backgroundImgSprite) {
m_layerManager.remove(m_backgroundImgSprite);
m_backgroundImgSprite = null;
}
for (int i = 0; i < DrawTools.PANEL_COUNTS; i++) {
if (null != m_panelSprite && null != m_panelSprite[i]) {
m_layerManager.remove(m_panelSprite[i]);
m_panelSprite[i] = null;
}
}
m_panelSprite=null;
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private void createBackground() {
try {
m_backgroundImg = Image.createImage("/tank/map_res/tank_factory.png");
m_panel = Image.createImage("/tank/map_res/bottom.png");
m_backgroundImgSprite = new Sprite(m_backgroundImg,
DrawTools.BACKGROUND_WIDTH,
DrawTools.BACKGROUND_HEIGHT);
m_layerManager.insert(m_backgroundImgSprite, 0);
m_panelSprite = new Sprite[DrawTools.PANEL_COUNTS];
for (int i = 0; i < DrawTools.PANEL_COUNTS; i++) {
m_panelSprite[i] = new Sprite(m_panel, DrawTools.PANEL_WIDTH,
DrawTools.PANEL_HEIGHT);
m_layerManager.insert(m_panelSprite[i], 0);
}
DrawTools.displayBackground(m_panelSprite, m_backgroundImgSprite);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private static void releaseButton(){
try {
m_buttonImage=null;
for (int i = 0; i < DrawTools.BUTTON_SPRITE_COUNTS; i++) {
if(null!=m_buttonSprite&&null!=m_buttonSprite[i]){
m_layerManager.remove(m_buttonSprite[i]);
m_buttonSprite[i]=null;
}
}
m_buttonSprite=null;
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private void createButton() {
try {
m_buttonImage = Image.createImage("/tank/map_res/factory_bottom_word.png");
//button,确定/返回
m_buttonSprite = new Sprite[DrawTools.BUTTON_SPRITE_COUNTS];
for (int i = 0; i < DrawTools.BUTTON_SPRITE_COUNTS; i++) {
m_buttonSprite[i] = new Sprite(m_buttonImage, DrawTools.BUTTON_IMAGE_WIDTH,
DrawTools.BUTTON_IMAGE_HEIGHT);
m_layerManager.insert(m_buttonSprite[i], 0);
}
int []buttonIndex={DrawTools.BUTTON_INDEX_CONTINUE,
DrawTools.BUTTON_INDEX_FACTORY
};
DrawTools.displayButton(m_buttonSprite,2,buttonIndex);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private static void releaseStageAndPoints(){
try {
m_stageWordImage=null;
m_stageNumImage=null;
m_enemyImage=null;
m_bottomIconImage=null;
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private void createStageAndPoints(){
try {
//stage_word.png
m_stageWordImage=Image.createImage("/tank/map_res/stage_word.png");
m_stageNumImage=Image.createImage("/tank/map_res/stage_num.png");
m_enemyImage=Image.createImage("/tank/tank_res/enemy.png");
m_bottomIconImage=Image.createImage("/tank/map_res/bottom_icon.png");
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private void displayStage(){
try {
if(null==m_stageNumImage){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -