SaveText.Ru

PACMAN
  1. import pygame, sys, random
  2.  
  3. W_W = 1000  # ширина окна (ось x)
  4. W_H = 500  # высота окна (ось y)
  5.  
  6. m = W_H//20
  7. n = W_W//20
  8. grid = [[0] * n for i in range(m)]
  9.  
  10. for i in range(m):
  11.     for j in range(n):
  12.         rand = random.randint(1, 10)
  13.         if rand < 3:
  14.             grid[i][j] = pygame.Rect(j*20, i*20, 20, 20)
  15. SPEED = 10
  16. SIZE = 20
  17. FPS = 10
  18. fpsClock = pygame.time.Clock()
  19.  
  20. UP = (0, -1)
  21. DOWN = (0, 1)
  22. LEFT = (-1, 0)
  23. RIGHT = (1, 0)
  24.  
  25.  
  26. def finish():
  27.     pygame.quit()
  28.     sys.exit(0)
  29.  
  30. Display = pygame.display.set_mode((W_W, W_H))
  31.  
  32. # заранее прописываем цвета, которые используем в игре (если нужно)
  33. # данные о цветах берём в RGB формате (примеры основных цветов ниже)
  34.  
  35. BLACK = (0, 0, 0)
  36. WHITE = (255, 255, 255)
  37. RED = (255, 0, 0)
  38. GREEN = (0, 255, 0)
  39. BLUE = (0, 0, 255)
  40.  
  41. # переменная, куда мы сохранили/загрузили картинку для фона (картинка должна быть в
  42. # одной папке с программой) – проверяем правильно ли написали имя своей картинки и расширение
  43.  
  44. BACKGROUND = pygame.image.load("LOL.jpg")
  45.  
  46. # переменная, куда мы сохранили/загрузили картинку для персонажа (картинка должна быть в
  47. # одной папке с программой) – проверяем правильно ли написали имя своей картинки и расширение
  48.  
  49. hero = pygame.image.load("kek.jpg")
  50. hero = pygame.transform.scale(hero, (40, 40))  # изменили размер картинки персонажа
  51.  
  52. hero_pos = hero.get_rect()
  53.  
  54. DISPLAY = pygame.display.set_mode((W_W, W_H))
  55. # добавили имя окна (будет видно в верхнем левом углу
  56. pygame.display.set_caption("PACMAN")
  57.  
  58. # количество кадров в секунду
  59. FPS = 10
  60. # отслеживаем время
  61. fpsClock = pygame.time.Clock()
  62.  
  63.  
  64. # мы сами задали/написали главную функцию с названием main (можно и другое название)
  65. def main():
  66.     # цикл с условием – бесконечный, так как всегда равен Истине (True)
  67.     while true:
  68.         for event in pygame.event.get():  # для каждого существующего действия извне
  69.             if event.type == pygame.QUIT:  # если игрок нажал на крестик
  70.                 finish()
  71.  
  72.             keys = pygame.key.get_pressed()
  73.             if keys[pygame.K_w]:
  74.                 hero_pos.move_ip(0, -15)
  75.             if keys[pygame.K_s]:
  76.                 hero_pos.move_ip(0, 15)
  77.             if keys[pygame.K_d]:
  78.                 hero_pos.move_ip(15, 0)
  79.             if keys[pygame.K_a]:
  80.                 hero_pos.move_ip(-15, 0)
  81.  
  82.         # DISPLAY.blit(BACKGROUND, (0, 0))  # соединяем окно и фон
  83.         # DISPLAY.blit(hero, hero_pos)  # соединяем прямоугольник персонажа и картинку
  84.  
  85.         for i in range(m):
  86.             for j in range(n):
  87.                 if grid[i][j]:
  88.                     pygame.draw.rect(Display, (255,0,0), grid[i][j])
  89.         # обновляем окно игры
  90.         pygame.display.update()
  91.         # возращаемся к нчалу цикла, после времени (выставили в FPS)
  92.         fpsClock.tick(FPS)
  93.  
  94.  
  95. pygame.display.update()
  96. fpsClock.tick(FPS)
  97.  
  98. # ОТСЮДА НАЧИНАЕТСЯ РАБОТА ПРОГРАММЫ
  99. main()  # вызвали функцию, которую ранее прописали, ждём пока не выйдем из цикла
  100.  
  101. pygame.quit()  # корректно завершаем работу с библиотекой pygame
  102. sys.exit()  # корректно завершаем работу программы, если всё ок, то 0 выдаст функция

Share with your friends:

Print