📄 walkthread.java
字号:
package game;/** *这个类用于循环扫描按键状态,调用按键事件的处理方法。* 并循环驱动游戏运行 * @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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -