/**

  • 重写线程的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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录