authorlogosplashcanvas.java

来自「一个基于JAVA的手机射击类游戏``有过关模式」· Java 代码 · 共 78 行

JAVA
78
字号
package jsky;

import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.io.*;
import java.util.*;

public class AuthorLogoSplashCanvas extends GameCanvas  implements Runnable {
    
    
    private Display display;
    private final Dragon midlet;
    private Image splashTextImage;
    private volatile boolean dismissed = false;
    int guageLength;
    
    
    AuthorLogoSplashCanvas(Dragon midlet){
        super(true);
        this.midlet = midlet;
        setFullScreenMode(true);
        try{
            splashTextImage = Image.createImage("/img/system/splashText.png");
        }catch(IOException ie){
            System.err.println("SplashCanvas pic error");
        }
        new Thread(this).start();
    }
    /**
     * 这里的线程等待和加载资源和显示菜单同步
     * 所以在显示闪屏的同时系统也在加载资源
     * 利用同步信号量volatile类型的参数做条件
     * 一个同步体和一个同步方法完成此闪屏操作.
     */
    
    public void run(){
        synchronized(this){
            try{
                
                wait(3000L);   // 3 seconds
            }catch (InterruptedException e){
                
            }
            dismiss();
        }
        
    }
    
    public void paint(Graphics g){
        int width = getWidth();
        int height = getHeight();
        g.setColor(0x00cccccc);  //
        g.fillRect(0, 0, width, height);
        
        g.setColor(0x00FF0000);
        g.drawRect(1, 1, width-2, height-2);
        g.setColor(0x0000ff);
        g.setFont(Font.getFont(Font.FACE_SYSTEM,
                Font.STYLE_BOLD,
                Font.SIZE_SMALL));
        g.drawString("Version: " + midlet.getAppProperty("MIDlet-Version"),getWidth()/2 -30,getHeight() - 60,Graphics.LEFT|Graphics.TOP);
        g.drawString("Author: Jsky",getWidth()/2 - 30,getHeight() - 40,Graphics.LEFT|Graphics.TOP);
        g.drawString("Loading...",getWidth()/2 -20,getHeight()-20,Graphics.LEFT|Graphics.TOP);
        if (splashTextImage != null){
            g.drawImage(splashTextImage,
                    30,40,
                    Graphics.LEFT| Graphics.TOP);
        }
    }
    
    private synchronized void dismiss(){
        if (!dismissed){
            dismissed = true;
            midlet.splashScreenDone();
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?