https://pastein.ru/t/iN

  скопируйте уникальную ссылку для отправки


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.imageio.*;
import java.io.*;

public class Pole extends JPanel {
  private Image santa;
  private Image fon;
  private Image game_end;
  public int x = 350; //координата санты
  private Podarok[] presents; //Массив подарков 
  private int lvl;
  private Timer timerUpdate;
  private Timer timerDraw;
  
//Здесь создается конструктор класса Pole
  public Pole(int lvl) {
	this.lvl = lvl;
	presents = new Podarok[7];
	
	try {
		game_end = ImageIO.read(new File("C:\\gifts\\game_over.png")).getScaledInstance(300,300, Image.SCALE_DEFAULT);
	} catch (IOException e1) {
		// TODO Auto-generated catch block
		e1.printStackTrace();
	}
	
	for(int i=0; i<7; i++) {
		try {
			presents[i] = new Podarok(ImageIO.read(new File("C:\\gifts\\p"+i+".png")).getScaledInstance(50, 50, Image.SCALE_DEFAULT));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	
    try {
      santa = ImageIO.read(new File("C:\\gifts\\santa.png"));
      fon = ImageIO.read(new File("C:\\gifts\\bg.jpg"));
    }
    catch (IOException ex) {
      System.out.println("Изображение не найдено");
    }


    //таймер который создавать подарки на игровом поле
    timerUpdate = new Timer(3000, new ActionListener() {
        public void actionPerformed(ActionEvent a) {
          updateStart();
        }
    });
    timerUpdate.start();
    
    //тАймер для отрисовки новоого кадра
    timerDraw = new Timer(16, new ActionListener() {
      public void actionPerformed(ActionEvent a) {
        repaint();
      }
    });
    timerDraw.start();
  }

  //Метод для проверки и добавления новых подарков
  private void updateStart() {
	  int kol = 0; //переменная дл подсчета подарков на игровом
	  for(int i = 0; i<7; i++) {
		  if(presents[i].act == false) { //Если подарок не на игровом поле
			  if(kol < lvl) {
				  presents[i].start();
				  break;
			  }
		  }
		  else kol++;
	  }
  }
  
  public void paintComponent(Graphics gr) {
    super.paintComponent(gr);
    gr.drawImage(fon, 0, 0, null);
    gr.drawImage(santa, x, 465,100,100, null);
    
    for(int i =0; i<7; i++) {
    	presents[i].draw(gr);
    	if(presents[i].act == true) {
    		if( (presents[i].y + presents[i].img.getHeight(null)) >= 470 ) {
    			if(Math.abs(presents[i].x - x)>100) { 
    				gr.drawImage(game_end, 300, 300, null);
    				timerUpdate.stop();
    				timerDraw.stop();
    				break;
    			}
    			else presents[i].act = false;
    			
    		}
    	}
    }
  }
}