Advertisement
WasuMrTomass0

Pygame_Intro_1

Oct 20th, 2021
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.12 KB | None | 0 0
  1. # Import modulu pygame, dzieki ktoremu tworzymy aplikacje okienkowa
  2. import pygame
  3.  
  4.  
  5. # Inicjalizacja modułu
  6. pygame.init()
  7. # Utworzenie okna o określonych wymiarach
  8. SCREEN_WIDTH = 800
  9. SCREEN_HEIGHT = 600
  10.  
  11. screen_surface = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
  12. # Nadanie nazwy oknu
  13. pygame.display.set_caption('Pierwsza Gra')
  14.  
  15. # Setup the clock for a decent frame rate
  16. clock = pygame.time.Clock()
  17.  
  18.  
  19. # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
  20. # Funkcje:
  21. def load_image(img_path: str, position=None):
  22.     image = pygame.image.load(img_path)
  23.     surface = image.convert()
  24.  
  25.     transparent_color = (0, 0, 0)
  26.     surface.set_colorkey(transparent_color, pygame.RLEACCEL)
  27.  
  28.     if position is None:
  29.         position = [SCREEN_WIDTH//2, SCREEN_HEIGHT//2]
  30.     # Pozycja wyświetlania obiektu zapisana jest w rect
  31.     rect = surface.get_rect(center=position)
  32.  
  33.     return [image, surface, rect]
  34.  
  35.  
  36. def print_image(img_list) -> None:
  37.     # [image, surface, rect]
  38.     image, surface, rect = img_list
  39.     screen_surface.blit(surface, rect)
  40.     pass
  41.  
  42.  
  43. def set_position_image(img_list, position):
  44.     image, surface, rect = img_list
  45.     rect = surface.get_rect(center=position)
  46.     return [image, surface, rect]
  47.  
  48.  
  49. def limit_position(position):
  50.     x, y = position
  51.     x = max(0, min(x, SCREEN_WIDTH))
  52.     y = max(0, min(y, SCREEN_HEIGHT))
  53.     return [x, y]
  54.  
  55.  
  56. def read_keyboard(keys):
  57.     # Poruszanie postacią
  58.     speed = 10
  59.     delta_x = 0
  60.     delta_y = 0
  61.     if keys[pygame.K_LSHIFT]:
  62.         speed *= 2
  63.  
  64.     if keys[pygame.K_w]:
  65.         delta_y -= speed
  66.     if keys[pygame.K_s]:
  67.         delta_y += speed
  68.     if keys[pygame.K_d]:
  69.         delta_x += speed
  70.     if keys[pygame.K_a]:
  71.         delta_x -= speed
  72.  
  73.     # Chcemy odwoływać się do zmiennych globalnych
  74.     global player, player_pos
  75.     # Zmiana wartości współrzędnych
  76.     player_pos[0] += delta_x
  77.     player_pos[1] += delta_y
  78.     # Sprawdzenie limitów współrzędnych
  79.     player_pos = limit_position(player_pos)
  80.     # Zmiana wspolrzednych obrazu
  81.     player = set_position_image(player, player_pos)
  82.     pass
  83.  
  84.  
  85. # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
  86. player_pos = [SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2]
  87. player = load_image('player.png', player_pos)
  88. background_color = [9, 42, 121]
  89.  
  90. # Zmienna określająca, czy należy zamknąć okno
  91. game_status = True
  92. # Kod wykonywany póki aplikacja jest uruchomiona
  93. while game_status:
  94.  
  95.     # Odczytanie zdarzeń zarejestrowanych przez komputer
  96.     events = pygame.event.get()
  97.  
  98.     for event in events:
  99.         # Naciśnięto X - zamykanie aplikacji
  100.         if event.type == pygame.QUIT:
  101.             game_status = False
  102.         pass  # for event
  103.  
  104.     pressed_keys = pygame.key.get_pressed()
  105.     read_keyboard(pressed_keys)
  106.  
  107.     # Uzupełnij tło
  108.     screen_surface.fill(background_color)
  109.     # Wyświetl gracza
  110.     print_image(player)
  111.  
  112.     # Odświeżenie wyświetlanego okna
  113.     pygame.display.update()
  114.  
  115.     clock.tick(60)
  116.     pass
  117.  
  118.  
  119. print("Zamykanie aplikacji")
  120. # Zamknięcie aplikacji
  121. pygame.quit()
  122. # Zamknięcie skryptu
  123. quit()
  124.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement