/**

  • 重写线程的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();
     }
    

    }

Overridepublic void run while true repaint; try Threadsleep50; if mariogetX = 775 nowBg = allBggetnowBggetSort; mariosetBackGro

原文地址: https://www.cveoy.top/t/topic/g0G9 著作权归作者所有。请勿转载和采集!

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