Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package game;
- import java.awt.Color;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.Toolkit;
- import javax.swing.JPanel;
- import javax.swing.Timer;
- public class Pole extends JPanel{
- // в данной точке с коорд x отображаем шапку
- int shapkaX = 400;
- // в данной точке с коорд y отображаем шапку
- static final int shapkaY = 460;
- // уровень сложности int slogn;
- Image fon;
- Image shapka;
- // timers
- Timer timerUpdate, timerDraw;
- // массив подарков
- Podar[] gamePodar;
- int slogn;
- public Pole(int slogn){
- this.slogn = slogn;
- // загружаем изо из файла и сохр в переменной типа Image
- fon = ImageUtil.loadImage(Game.getFonPath());
- shapka = ImageUtil.loadImage(Game.getShapkaPath());
- // создаем массив подарков
- gamePodar = new Podar[7];
- // заполняем массив подарков
- for(int i = 0; i < gamePodar.length; i++){
- gamePodar[i] = new Podar(ImageUtil.loadImage(Game.getPodarokPath(i)));
- }
- timerUpdate = new Timer(4000, (e) -> updateStart());
- timerUpdate.start();
- // timerDraw
- // repaint() - вызыв метода приводит вызову метода paintComponent
- timerDraw = new Timer(30, (e) -> repaint());
- // запускаем таймер start
- timerDraw.start();
- }
- public void updateStart(){
- int kol = 0;
- for(int i = 0; i < gamePodar.length; i++){
- if(gamePodar[i].isAct()){
- kol++;
- }else if(kol<slogn){
- gamePodar[i].start();
- break;
- }
- }
- }
- //
- public int getShapkaX() {
- return shapkaX;
- }
- public void setShapkaX(int shapkaX) {
- this.shapkaX = shapkaX;
- }
- // методы для сдвига влево/вправо
- public void moveShapkaToL(int shiftX){
- this.shapkaX -= shiftX;
- }
- //
- public void moveShapkaToR(int shiftX){
- this.shapkaX += shiftX;
- }
- // метод paintComponent отвечает за отображение граф информации
- public void paintComponent(Graphics gr){
- // вызов родительского метода paintComponent
- super.paintComponent(gr);
- // отрисовка фона - используем drawImage
- gr.drawImage(fon, 0, 0, null);
- gr.drawImage(shapka, shapkaX, shapkaY, null);
- // выводим объекты на экране
- for(int i = 0; i < gamePodar.length; i++){
- gamePodar[i].draw(gr); // отрисовка объекта на экране
- if(gamePodar[i].isAct()){
- if(gamePodar[i].getY() + gamePodar[i].getImg().getHeight(null) >= 470){
- if(Math.abs(gamePodar[i].getX() - shapkaX) > 75){ // конец игры!!!
- gr.setFont(new Font("Arial", Font.BOLD, 24));
- gr.setColor(Color.red);
- gr.drawString("Игра закончена!", 300, 300);
- timerDraw.stop();
- timerUpdate.stop();
- Toolkit.getDefaultToolkit().beep();
- break;
- }else{ // подарок пойман - устанавливаем флаг для того, чтобы стереть подарок!
- gamePodar[i].setAct(false);
- Toolkit.getDefaultToolkit().beep();
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement