@Override
	public void run() {
		// 如果界面刷新和马里奥移动线程睡眠的时间不一致，就会出现操作和显示不协调的情况
		while (true) {
			this.repaint();
			try {
				Thread.sleep(50);
				if (mario.getX() >= 840) {
					// 切换场景
					// 先加1再减1，两相抵消
					currBg = listBg.get(currBg.getIndex() + 1);
					// 将当前场景设置到mario对象中
					mario.setBg(currBg);
					// 将场景中的敌人移动
					currBg.enemyStartMove();
					// 修改mario的坐标
					mario.setX(0);
				}

				// 对mario死亡的处理，必须放入MyFrame类而不能在Mario类中处理
				if (mario.isDead()) {
					JOptionPane.showMessageDialog(this, "mario is dead!");
					System.exit(0);
				}

				if (mario.isClear()) {
					JOptionPane.showMessageDialog(this, "恭喜通关，请期待以后的关卡！");
					System.exit(0);
				}
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}