⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 splash.java

📁 利用Java 开发的一个手机版的潜艇游戏。游戏实现的重点就是屏幕的绘制滚动技术和碰撞检测技术
💻 JAVA
字号:
package mysubmarine;

import java.util.*;

import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.GameCanvas;


public class Splash extends GameCanvas implements Runnable {
    private UIController controller;
    private StringBuffer strTitle; //屏幕的标题
    private Image img; //屏幕的图片
    private int nWidth = getWidth(); //屏幕宽度
    private int nHeight = getHeight(); //屏幕高度
    private Vector message = new Vector(); //需要显示在屏幕上的消息

    private Timer timer = new Timer(); //定时器
    private long displayTime = 3000; //默认的屏幕显示的时间
    private Graphics g = getGraphics();

    public Splash(UIController controller, StringBuffer Info) {
        super(false);
        this.controller = controller;
        this.strTitle = Info;
    }

    public Splash(UIController controller, StringBuffer Info, Image img) {
        super(false);
        this.controller = controller;
        this.strTitle = Info;
        this.img = img;
    }

    public void run() {
        while (true) {
            try {
                //每50ms重画一次
                Thread.sleep(50);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            this.paintCanvas(g);
        }
    }

    /**
     * paint
     *
     * @param graphics Graphics
     * @todo Implement this javax.microedition.lcdui.Canvas method
     */
    protected void paintCanvas(Graphics graphics) {
        graphics.setColor(0, 0, 0);
        graphics.fillRect(0, 0, nWidth, nHeight);
        if (img != null) {
            graphics.drawImage(img, nWidth / 2, nHeight / 2,
                               Graphics.HCENTER | Graphics.VCENTER);
        }
        graphics.setColor(255, 0, 0);
        graphics.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD,
                                      Font.SIZE_LARGE));
        graphics.drawString(strTitle.toString(),
                            nWidth / 2 - strTitle.toString().length() / 2,
                            nHeight / 4,
                            Graphics.BASELINE | Graphics.HCENTER);
        this.flushGraphics();
    }

    /**
     * setDisplayTime
     * @param long time
     * 设置显示时间
     */
    public void setDisplayTime(long time) {
        this.displayTime = time;
    }

    public long getDisplayTime() {
        return this.displayTime;
    }

    /**
     * showNotify
     * 改写系统的showNotify函数,调度时钟任务
     */
    protected void showNotify() {
        timer.schedule(new TimerTask() {
            public void run() {
                disappear();
            }
        },
                displayTime
                );
    }

    protected void keyPressed(int keyCode) {
        this.disappear();
    }

    /**
     * disappear
     * 取消当前屏幕的显示,显示下一个屏幕
     */
    private void disappear() {
        timer.cancel();
        controller.handleEvent(UIController.EventID.EVENT_GAME_RUN);
    }
}

⌨️ 快捷键说明

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