Advertisement
ada1711

Untitled

May 23rd, 2023
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.15 KB | None | 0 0
  1. import pygame
  2. import random
  3. import time
  4. from Kierunek import Kierunek
  5. from Waz import Waz
  6.  
  7. from Jablko import Jablko
  8.  
  9. # from randomRgb import get_random_rgb
  10.  
  11. SZEROKOSC_EKRANU = 608
  12. WYSOKOSC_EKRANU = 800
  13.  
  14. tlo = pygame.Surface((SZEROKOSC_EKRANU, WYSOKOSC_EKRANU))
  15.  
  16. for i in range(19):
  17. for j in range(25):
  18. obraz = pygame.image.load("images/background.png")
  19. # Zadanie - wylosuj 3 wartości od 0 do 20 w miejsce x, y, z
  20. maska = (random.randint(0, 20), random.randint(0, 20), random.randint(0, 20))
  21. # maska = get_random_rgb()
  22.  
  23. obraz.fill(maska, special_flags=pygame.BLEND_ADD)
  24. tlo.blit(obraz, (i * 32, j * 32))
  25.  
  26. pygame.init()
  27. ekran = pygame.display.set_mode([SZEROKOSC_EKRANU, WYSOKOSC_EKRANU])
  28. zegar = pygame.time.Clock()
  29.  
  30. jablko = Jablko()
  31. jablka = pygame.sprite.Group()
  32. jablka.add(jablko)
  33.  
  34. waz = Waz()
  35. PORUSZ_WEZEM = pygame.USEREVENT + 1
  36. pygame.time.set_timer(PORUSZ_WEZEM, 200)
  37.  
  38.  
  39. gra_dziala = True
  40. while gra_dziala:
  41. for event in pygame.event.get():
  42. if event.type == pygame.KEYDOWN:
  43. if event.key ==pygame.K_ESCAPE:
  44. gra_dziala=False
  45. if event.key ==pygame.K_w:
  46. waz.zmien_kierunek(Kierunek.GORA)
  47. if event.key ==pygame.K_d:
  48. waz.zmien_kierunek(Kierunek.PRAWO)
  49. if event.key ==pygame.K_s:
  50. waz.zmien_kierunek(Kierunek.DOL)
  51. if event.key ==pygame.K_a:
  52. waz.zmien_kierunek(Kierunek.LEWO)
  53. # match(event.key):
  54. # case pygame.K_ESCAPE:
  55. # gra_dziala = False
  56. # case pygame.K_w:
  57. # waz.zmien_kierunek(Kierunek.GORA)
  58. # case pygame.K_a:
  59. # waz.zmien_kierunek(Kierunek.LEWO)
  60. # case pygame.K_s:
  61. # waz.zmien_kierunek(Kierunek.DOL)
  62. # case pygame.K_d:
  63. # waz.zmien_kierunek(Kierunek.PRAWO)
  64. # if event.key == pygame.K_w:
  65. # waz.zmien_kierunek(Kierunek.Gora)
  66.  
  67. elif event.type == pygame.QUIT:
  68. gra_dziala = False
  69. elif event.type == PORUSZ_WEZEM:
  70. waz.aktualizuj()
  71.  
  72. ekran.blit(tlo, (0, 0))
  73.  
  74.  
  75. for a in jablka:
  76. ekran.blit(a.obraz, a.rect)
  77.  
  78. ekran.blit(waz.obraz, waz.rect)
  79.  
  80. pygame.display.flip()
  81.  
  82. zegar.tick(30)
  83.  
  84. pygame.quit()
  85.  
  86. '''
  87. Zadanie 1
  88.  
  89. Utwórz inne proporcje ekranu - ekran ma mieć więcej w wysokości, niż w szerokości.
  90.  
  91. ---
  92.  
  93. Zadanie 2
  94.  
  95. Wyeksportuj kod losowania koloru kafelka do swojego osobnego pliku i użyj go jak zwykle w kodzie main.py.
  96.  
  97. Zadanie 3
  98.  
  99. Przeiteruj przez grupę jablka i wyrenderuj ją na ekran.
  100. (ekran.blit(jablko.obraz, jablko.rect))
  101.  
  102. '''
  103.  
  104. =========================================================================================================
  105. # Kierunek.py
  106. from enum import Enum
  107.  
  108. # Enumerator
  109.  
  110. class Kierunek(Enum):
  111. GORA = 0
  112. PRAWO = 1
  113. DOL = 2
  114. LEWO = 3
  115.  
  116. ==========================================================================================================
  117.  
  118. #Waz.py
  119.  
  120. import pygame
  121. from Kierunek import Kierunek
  122.  
  123. class Waz(pygame.sprite.Sprite):
  124.  
  125. def __init__(self):
  126. self.oryginalny_obraz = pygame.image.load("images/head.png")
  127. self.obraz = pygame.transform.rotate(self.oryginalny_obraz, 0)
  128. self.rect = self.obraz.get_rect(center=(9*32-16, 12*32-16))
  129. self.kierunek = Kierunek.GORA
  130. self.nowy_kierunek = Kierunek.GORA
  131.  
  132. def zmien_kierunek(self, kierunek):
  133. zmiana_mozliwa = True
  134. if kierunek == Kierunek.GORA and self.kierunek == Kierunek.DOL:
  135. zmiana_mozliwa = False
  136. elif kierunek == Kierunek.DOL and self.kierunek == Kierunek.GORA:
  137. zmiana_mozliwa = False
  138. elif kierunek == Kierunek.PRAWO and self.kierunek == Kierunek.LEWO:
  139. zmiana_mozliwa = False
  140. elif kierunek == Kierunek.LEWO and self.kierunek == Kierunek.PRAWO:
  141. zmiana_mozliwa = False
  142.  
  143. if zmiana_mozliwa:
  144. self.nowy_kierunek = kierunek
  145.  
  146. def aktualizuj(self):
  147. self.kierunek = self.nowy_kierunek
  148. self.obraz = pygame.transform.rotate(self.oryginalny_obraz, (self.kierunek.value * -90))
  149.  
  150. if self.kierunek == Kierunek.GORA:
  151. self.rect.move_ip(0, -32)
  152. elif self.kierunek == Kierunek.DOL:
  153. self.rect.move_ip(0, 32)
  154. elif self.kierunek == Kierunek.PRAWO:
  155. self.rect.move_ip(32, 0)
  156. elif self.kierunek == Kierunek.LEWO:
  157. self.rect.move_ip(-32, 0)
  158.  
  159. ==========================================================================================================
  160.  
  161. #Jablko.py
  162.  
  163. import pygame
  164. import random
  165.  
  166. class Jablko(pygame.sprite.Sprite):
  167.  
  168. def __init__(self):
  169. super(Jablko, self).__init__()
  170. self.obraz = pygame.image.load("images/apple.png")
  171. self.rect = pygame.Rect( # wcześniej self.pozycja
  172. random.randrange(0, 18) * 32,
  173. random.randrange(0, 24) * 32,
  174. 32,
  175. 32
  176. )
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement