У цьому проекті головний герой - Пакмен, рухається за допомогою кнопок-стрілочок і збирає яблука, розміщені на ігровому полі.


У цьому проекті використаємо зображення Пакмена та яблука з файлів  (файли потрібно розмістити у каталозі Images)

зображення пакмена зображення яблука


На початку проекту задаємо розмір ігрового поля.

import random
WIDTH = 500
HEIGHT = 500


Завантажимо у проект файл із зображенням Пакмена, і задамо її початкову позицію в центрі екрану.

pacman = Actor("pacman")
pacman.pos = 250,250

Аналогічно завантажуємо файл з яблуком, та, за бажання - тлом.


У функції draw() задаємо показ Пакмена та яблука. 

def draw():
    screen.clear()
    pacman.draw()
    apple.draw()


У функції update() задаємо можливість руху персонажу Пакмена за натисненням клавіш стрілок праворуч та ліворуч, а також вгору. 

За умовчанням персонаж рухається вправо. Натиснення кнопки зі стрілкою змушує персонаж змінити напрям руку і продовжувати рух, доки не натиснемо іншу стрілку. Для цього використаємо змінну direction, яка спочатку має значення "right". Якщо натиснути стрілку, то передусім змінюється значення змінної direction.

Далі, залежно від поточного значення змінної direction, відбувається зміна координат Пакмена:

def update():
    global direction
    if keyboard.left:
        direction = "left"
    elif keyboard.right:
        direction = "right"
    elif keyboard.up:
        direction = "up"
    elif keyboard.down:
        direction = "down"
    global game
    if direction == "right":
        pacman.x += 2
    elif direction == "left":
        pacman.x -= 2
    elif direction == "up":
        pacman.y -= 2
    elif direction == "down":
        pacman.y += 2

Не забудьте додати змінну direction на початок проекту:

direction = "right"

До функції update() додайте код, який перевіряє зіткнення Пакмена і яблука. Якщо Пакмен торкається яблука, то для яблука отримуємо нову випадкову позицію

    if apple.colliderect(pacman):
        x=random.randint(10,490)
        y=random.randint(10,490)
        apple.pos=x,y

Доповніть проект на власний розсуд:

  • тло
  • підрахунок балів та їх виведення на екран
  • зміна швидкості руху, залежно від набраних балів
  • обмеження руху Пакмена лише областю гри
  • додавання персонажа, який переслідує Пакмена
Last modified: Sunday, 15 December 2019, 10:44 AM