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;
}
}
}
}
}