walkthread.java

来自「本程序是一个演示动画效果的程序」· Java 代码 · 共 88 行

JAVA
88
字号
/** *这个类用于循环扫描按键状态,调用按键事件的处理方法。* 并循环驱动游戏运行 * @author Shengli Lin */public class WalkThread extends Thread {    /**     *  线程是否应该暂停标志     */boolean  isShouldPause;    /**     *  线程是否应该停止标志     */static boolean isShouldStop;    /**     *  线程是否已经启动标志     */    boolean  isAlreadyStarted;    /**     *  声明游戏画布对象     */    WalkCatCanvas walkCanvas;/** *  游戏线程构造器 */    public WalkThread (WalkCatCanvas canvas) {        walkCanvas = canvas;    }    /**     * 启动游戏     */    void go () {        if (!isAlreadyStarted) {            isAlreadyStarted = true;            start();        }        else {            isShouldPause = !isShouldPause;        }    }    /**     *  暂停游戏.     */    void pause () {        isShouldPause = true;    }    /**     *  停止游戏     */    static void requestStop () {        isShouldStop = true;    }    /**     *  每隔0.2秒运行一次游戏,直到游戏暂停或退出     */public void run () {        // 在游戏开始之前清除按键状态        walkCanvas.flushKeys();        isShouldStop = false;        isShouldPause = false;        while (true) {            synchronized (this) {                try {                    sleep(200);                } catch (Exception e) {                    e.printStackTrace();                }            }            if (isShouldStop) {                break;            }            if (!isShouldPause) {                walkCanvas.checkKeys();                walkCanvas.walk();            }        }    }}

⌨️ 快捷键说明

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