📄 splashscreen.java
字号:
/**********************************************************
File name:SplashScreen.java
Author:夏文涛
Version:Beta1.0
Data:2007/10/16
Description:
游戏闪屏画面的实现,主要用来显示游戏的LOGO.
*********************************************************/
package com.Izual.MetalMax;
import javax.microedition.lcdui.*;
import javax.microedition.media.MediaException;
public class SplashScreen extends Canvas implements Runnable {
private final MetalMax midlet;
private Image splashImage; /*游戏LOGO的图片*/
private volatile boolean dismissed = false; /*是否跳过*/
SplashScreen(MetalMax midlet){
this.midlet = midlet;
setFullScreenMode(true);
/*开始播放LOGO时的声音*/
SoundEffects.getInstance().startLogoSound();
try{
/*闪屏时显示的图片*/
splashImage = Image.createImage("/mm_title.png");
}catch(Exception e){
e.printStackTrace();
}
new Thread(this).start();
}
/*等待5秒后自动转到游戏菜单界面*/
public void run(){
synchronized(this){
try{
wait(5000L);
}catch(InterruptedException e){}
}
try {
dismiss();
} catch (MediaException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
/*闪屏界面的绘制*/
public void paint(Graphics g){
int CanvasWidth = getWidth();
int CanvasHeight = getHeight();
g.setColor(0x00FFFFFF);
g.fillRect(0, 0, CanvasWidth, CanvasHeight);
g.setColor(0x00FF0000);
g.drawRect(1, 1, CanvasWidth - 3, CanvasHeight - 3);
if(splashImage != null){
g.drawImage(splashImage,CanvasWidth/2,CanvasHeight/2 - 20,
Graphics.VCENTER|Graphics.HCENTER);
splashImage = null;
}
g.setFont(Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_BOLD,Font.SIZE_LARGE));
int centerX = CanvasWidth/2;
int centerY = CanvasHeight/2 + 60;
g.setColor(0x00FFFFF);
drawText(g,centerX,centerY - 1);
drawText(g,centerX,centerY + 1);
drawText(g,centerX -1,centerY);
drawText(g,centerX +1,centerY);
g.setColor(0x00000000);
drawText(g,centerX,centerY);
midlet.splashScreenPainted();
}
/*绘制文字的方法*/
private void drawText(Graphics g, int centerX, int centerY){
int fontHeight = g.getFont().getHeight();
int textHeight = 2*fontHeight;
int topY = centerY - textHeight/2 - 30;
g.drawString("Press START",centerX,topY,Graphics.HCENTER|Graphics.TOP);
}
/*键盘事件,如果按下任意键,则闪屏结束,转到游戏菜单选择界面*/
public synchronized void keyPressed(int keyCode){
try {
dismiss();
} catch (MediaException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
/*闪屏界面结束*/
private void dismiss() throws MediaException{
if(!dismissed){
dismissed = true;
midlet.splashScreenDone();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -