Java 线程 - 重绘界面并检测游戏状态
/**
-
重写线程的run方法,不停的重绘界面,并检测马里奥是否到达边界或死亡或通关 */ @Override public void run() { while (true) { // 每隔50毫秒重绘一次界面 repaint(); try { // 线程休眠50毫秒 Thread.sleep(50);
// 判断马里奥是否到达边界,如果是则切换到下一个背景并重置马里奥的位置 if (mario.getX() >= 775) { nowBg = allBg.get(nowBg.getSort()); // 获取下一个背景 mario.setBackGround(nowBg); // 重置马里奥的背景 mario.setX(10); // 重置马里奥的横坐标 mario.setY(355); // 重置马里奥的纵坐标 } // 判断马里奥是否死亡,如果是则弹出提示信息并退出游戏 if (mario.isDeath()) { JOptionPane.showMessageDialog(this, 'GAME OVER!!!'); System.exit(0); } // 判断游戏是否结束,如果是则弹出提示信息并退出游戏 if (mario.isOK()) { JOptionPane.showMessageDialog(this, '恭喜你!成功通关了'); System.exit(0); } } catch (InterruptedException e) { e.printStackTrace(); }} }
原文地址: https://www.cveoy.top/t/topic/ozAc 著作权归作者所有。请勿转载和采集!