?? menu.java
字號:
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.rms.*;
public class Menu extends Canvas implements Runnable{
Main_MIDlet m;//設備管理對象
boolean flag = false;//線程控制變量
int level = 0;//當前屏幕顯示內容
Image logo = null;//閃屏圖片
Image menu = null;//菜單背景圖
Image ch = null;//選擇指示標
Image back = null;//返回按鈕
Image exit = null;//退出按鈕
Image top = null;
Image controls = null;
Image about = null;
private static final int mao = Graphics.LEFT|Graphics.TOP;//錨點整型值
Thread t = null;//線程對象
private int y = 123;//選擇指示標坐標
private int x = 40;
private int width;//屏幕寬
private int height;//屏幕高
public Menu(Main_MIDlet m,int l)
{
this.m = m;
setFullScreenMode(true);//設置屏幕以全屏顯示
level = l;//當前顯示級別
width = getWidth();//獲得屏幕寬度
height = getHeight();//獲得屏幕高度
//加載圖片
if(logo == null || menu == null || ch == null)
{
try
{
logo = Image.createImage("/logo.png");
menu = Image.createImage("/menu.png");
ch = Image.createImage("/sp.png");
top = Image.createImage("/top.png");
controls = Image.createImage("/controls.png");
about = Image.createImage("/about.png");
}catch(Exception e)
{
System.out.println("Menu類加載圖片出錯1。");
}
}
t = new Thread(this);
flag = true;
t.start();//啟動線程
}
public void run()
{
while(flag)
{
try
{
Thread.sleep(250);
}catch(Exception e)
{
e.printStackTrace();
}
if(level == 0)
{
level = 1;
}
repaint();
}
}
public void keyPressed(int keyCode)
{
int key = getGameAction(keyCode);
if(keyCode == -6)
{
if(level == 3 || level == 4 || level == 5)
{
level = 1;
repaint();
}
}else if(keyCode == -7)
{
if(level == 3 || level == 4 || level == 5)
{
m.exit();
}
}
switch(key)
{
case Canvas.LEFT:
break;
case Canvas.RIGHT:
break;
case Canvas.UP:
y -= 30;
if(y < 123){
y = 243;
x = 80;
}
if(y == 123){
x = 40;
}
if(y == 153){
x = 83;
}
if(y == 183){
x = 60;
}
if(y == 213){
x = 70;
}
if(y == 243){
x = 80;
}
repaint();
break;
case Canvas.DOWN:
y += 30;
if(y > 243)
{
y = 123;
x = 40;
}
if(y == 123){
x = 40;
}
if(y == 153){
x = 83;
}
if(y == 183){
x = 60;
}
if(y == 213){
x = 70;
}
if(y == 243){
x = 80;
}
repaint();
break;
case Canvas.FIRE:
if(level == 1)
{
switch(y)
{
case 123:
level = 2;
Main_MIDlet.display.setCurrent(new Game(m));//切屏,顯示游戲主界面
break;
case 153:
level = 4;
repaint();
break;
case 183:
level = 5;
repaint();
break;
case 213:
level = 3;
repaint();
break;
case 243:
m.exit();
break;
}
}
break;
}
}
//繪制閃屏
private void drawSplash(Graphics g)
{
g.drawImage(logo,getWidth()/2,getHeight()/2,Graphics.VCENTER|Graphics.HCENTER);
}
//繪制菜單
private void drawMenu(Graphics g)
{
g.drawImage(menu,0,0,mao);
g.drawImage(ch,x,y,mao);
}
//繪制幫助頁面
private void drawAbout(Graphics g)
{
load();
g.setColor(0,0,0);
g.fillRect(0,0,width,height);
g.drawImage(about, 0, 0, mao);
g.drawImage(exit, 185, 276, mao);
g.drawImage(back, 0, 276, mao);
}
//繪制排行榜頁面
private void drawTop(Graphics g)
{
load();
g.setColor(0,0,0);
g.fillRect(0,0,width,height);
g.drawImage(top, 0, 0, mao);
g.drawImage(exit, 185, 276, mao);
g.drawImage(back, 0, 276, mao);
}
private void drawControls(Graphics g)
{
load();
g.setColor(0,0,0);
g.fillRect(0,0,width,height);
g.drawImage(controls, 0, 0, mao);
g.drawImage(exit, 185, 276, mao);
g.drawImage(back, 0, 276, mao);
}
//加載其他頁面圖片
private void load()
{
if(back == null || exit == null)
{
try
{
back = Image.createImage("/back.png");
exit = Image.createImage("/exit.png");
}catch(Exception e)
{
System.out.println("Menu類加載圖片出錯2.");
}
}
}
//將圖案繪制到屏幕上
protected void paint(Graphics g) {
// TODO Auto-generated method stub
switch(level)
{
case 0:
drawSplash(g);
break;
case 1:
flag = false;
t = null;
System.gc();
drawMenu(g);
break;
case 2:
break;
case 3:
drawAbout(g);
break;
case 4:
drawTop(g);
break;
case 5:
drawControls(g);
break;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -