Advertisement
sergAccount

Untitled

Dec 26th, 2020
963
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.96 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package game;
  7.  
  8. import java.awt.Graphics;
  9. import java.awt.Image;
  10. import javax.swing.JPanel;
  11. import javax.swing.Timer;
  12.  
  13. public class Pole extends JPanel{
  14.     // в данной точке с коорд x отображаем шапку
  15.     int shapkaX = 400;
  16.     // в данной точке с коорд y отображаем шапку
  17.     static final int shapkaY = 460;
  18.     // уровень сложности     int slogn;
  19.     Image fon;
  20.     Image shapka;
  21.     // timers
  22.     Timer timerUpdate, timerDraw;        
  23.     // массив подарков
  24.     Podar[] gamePodar;        
  25.     int slogn;
  26.    
  27.     public Pole(int slogn){
  28.         this.slogn  = slogn;
  29.         // загружаем изо из файла и сохр в переменной типа Image
  30.         fon = ImageUtil.loadImage(Game.getFonPath());    
  31.         shapka = ImageUtil.loadImage(Game.getShapkaPath());            
  32.         // создаем массив подарков
  33.         gamePodar = new Podar[7];
  34.         // заполняем массив подарков
  35.         for(int i = 0; i < gamePodar.length; i++){            
  36.             gamePodar[i] = new Podar(ImageUtil.loadImage(Game.getPodarokPath(i)));            
  37.         }        
  38.         timerUpdate = new Timer(4000, (e) -> updateStart());
  39.         timerUpdate.start();              
  40.         // timerDraw
  41.         // repaint() - вызыв метода приводит вызову метода paintComponent
  42.         timerDraw = new Timer(30, (e) -> repaint());
  43.         // запускаем таймер start
  44.         timerDraw.start();
  45.     }
  46.    
  47.     public void updateStart(){
  48.         int kol = 0;
  49.         for(int i = 0; i < gamePodar.length; i++){
  50.             if(gamePodar[i].isAct()){
  51.                kol++;
  52.             }else if(kol<slogn){
  53.                gamePodar[i].start();
  54.                break;                                
  55.             }                  
  56.         }
  57.     }
  58.     //
  59.     public int getShapkaX() {
  60.         return shapkaX;
  61.     }
  62.     public void setShapkaX(int shapkaX) {
  63.         this.shapkaX = shapkaX;
  64.     }
  65.     // методы для сдвига влево/вправо
  66.     public void moveShapkaToL(int shiftX){
  67.         this.shapkaX -= shiftX;
  68.     }
  69.     //
  70.     public void moveShapkaToR(int shiftX){
  71.         this.shapkaX += shiftX;
  72.     }
  73.     // метод paintComponent отвечает за отображение граф информации
  74.     public void paintComponent(Graphics gr){
  75.         // вызов родительского метода paintComponent
  76.         super.paintComponent(gr);
  77.         // отрисовка фона - используем drawImage
  78.         gr.drawImage(fon, 0, 0, null);
  79.         gr.drawImage(shapka, shapkaX, shapkaY, null);        
  80.     }    
  81. }
  82.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement