Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # ------------------------ program.py --------------------
- # 1. potrzebne biblioteki:
- # - pygame
- import pygame
- # 2a. tworzymy plik game_settings.py i dodajemy tam wartosci SCREEN_WIDTH oraz SCREEN_HEIGHT
- # 2b. importujemy wartości SCREEN_WIDTH oraz SCREEN_HEIGHT z game_settings
- # --- 1 sposób ---
- '''
- import game_settings
- game_settings.SCREEN_WIDTH
- '''
- # -- 2 sposób
- from game_settings import SCREEN_WIDTH, SCREEN_HEIGHT
- # 32. importujemy klase Paddle z pliku paddle.py
- from paddle import Paddle
- pygame.init()
- # 3. zmienna screen na ekran o wymiarach [SCREEN_WIDTH, SCREEN_HEIGHT]
- screen = pygame.display.set_mode([SCREEN_WIDTH, SCREEN_HEIGHT])
- # 4. zmienna clock na zegar gry
- clock = pygame.time.Clock()
- # 5. zmienna background_image z tłem gry
- # załadowanym z pliku 'images/background.png'
- background_image = pygame.image.load('images/background.png')
- # 33. obiekt Paddle
- paddle = Paddle()
- # 6. glowna petla programu - tak dlugo jak zmienna game_running jest True
- game_running = True
- while game_running:
- # 7. przejście po wszystkich wydarzeniach z pygame.event.get()
- for event in pygame.event.get():
- # 8. zdarzenie naciśnięcia klawisza pygame.KEYDOWN
- if event.type == pygame.KEYDOWN:
- # 9. sprawdzamy klawisz pygame.K_ESCAPE
- if event.key == pygame.K_ESCAPE:
- # 10. zatrzymujemy grę (zmienna game_running)
- game_running = False
- # 11. zdarzenie nacisnięcia klawisza X
- if event.type == pygame.QUIT:
- # zatrzymanie gry (game_runing)
- game_running = False
- # UWAGA: do zrobienia z nauczycielem
- # 34. sterowanie paletką - używamy metody pygame.key.get_pressed()
- keys = pygame.key.get_pressed()
- if keys[pygame.K_a] or keys[pygame.K_LEFT]:
- paddle.move_paddle(-1)
- if keys[pygame.K_d] or keys[pygame.K_RIGHT]:
- paddle.move_paddle(1)
- # 12. wyświetl tło
- screen.blit(background_image, (0,0))
- # 35. wyświetl paletkę (paddle.image, paddle.position)
- screen.blit(paddle.image, paddle.position)
- # 13. czyszczenie ekranu (2-buffer)
- pygame.display.flip()
- # 14. ustawienie zegara - 30 FPS
- clock.tick(30)
- # 15. zamkniecie aplikacji
- pygame.quit()
- # ------------------------ paddle.py ------------------------
- # 16. importujemy biblioteki
- # - pygame
- import pygame
- # 17. importujemy wartości SCREEN_WIDTH oraz SCREEN_HEIGHT z game_settings
- from game_settings import SCREEN_WIDTH, SCREEN_HEIGHT
- # 19. klasa Paddle - nasza paletka
- # dziedziczy z klasy Sprite z modułu sprite biblioteki pygame
- class Paddle(pygame.sprite.Sprite):
- # 20a. konstruktor klasy Paddle
- def __init__(self):
- # 20b. uruchomienie konstruktora klasy nadrzednej
- super().__init__()
- # 21. wczytanie i zapisanie obrazka do zmiennej image
- # ścieżka to: 'images/pad.png'
- self.image = pygame.image.load('images/pad.png')
- # zmienna zapamiętująca kierunek poruszania paletki
- # -1 -> lewa strona; 1 -> prawa strona
- self.is_moving = 0
- # 22. resetowanie pozycji - uruchomienie funkcji reset_position
- # bedzie ona stworzona ponizej konstruktora
- self.reset_position()
- # 23. definicja funkcji reset_position()
- def reset_position(self):
- # 24. ustawienie pozycji (obiekt klasy Rect z biblioteki pygame)
- # 25. wspołrzędne położenia: SCREEN_WIDTH/2-70, SCREEN_HEIGHT - 100
- # 26. wymiary: 140 x 30
- paddle_width = 140
- paddle_height = 30
- paddle_offset_from_bottom = 100
- self.position = pygame.Rect(SCREEN_WIDTH/2 - paddle_width/2, SCREEN_HEIGHT - paddle_offset_from_bottom,
- paddle_width, paddle_height)
- # 27. funkcja move_paddle
- def move_paddle(self, direction):
- # direction: -1 -> lewo, 1 -> prawo
- self.is_moving = direction
- # 28. predkosc poruszania sie
- speed = 10
- # 29. przesuniecie pozycji (funkcji move_ip klasy Rect)
- self.position.move_ip(direction * speed, 0)
- # 30. ograniczenie z lewej strony
- # jesli pozycja position.left <= 0 ustawiamy position.x = 0
- if self.position.left <= 0:
- self.position.x = 0
- # 31. ograniczenie z prawej strony
- # jesli pozycja position.right >= SCREEN_WIDTH ustawiamy position.x = SCREEN_WIDTH - 140
- if self.position.right >= SCREEN_WIDTH:
- self.position.x = SCREEN_WIDTH - 140
- def update(self):
- self.is_moving = 0
- # ----------------------- game_settings.py -----------------
- # 2. wymiary ekranu 1024x800, zmienne SCREEN_WIDTH oraz SCREEN_HEIGHT
- SCREEN_WIDTH = 1024
- SCREEN_HEIGHT = 800
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement