Перший ігровий проект (м'ячик)

Бібліотека pygame встановлюється такими командами:

python get-pip.py

файл get-pip.py (розмістити в папці Python)

python -m pip install pygame


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

Змінні BLACK WHITE GREEN RED описують кольори: чорний, білий, зелений, червоний. Як описати синій, фіолетовий, жовтий колір?

Змінна size визначає розмір ігрового екрану. screen = pygame.display.set_mode(size) створює ігрове вікно заданого розміру. pygame.display.set_caption("Моя гра") задає назву вікна.

Змінна done = False вказує на показник завершення програми. Далі у програмі, коли настане подія pygame.event.get() завершення гри, змінна done набуде значення True і цикл while not done: буде завершено.

Команда clock = pygame.time.Clock() запускає ігровий годинник, який буде оновлюватись кожні 60 мілісекунд командою clock.tick(60).

screen.fill(WHITE) - зафарбовуємо ігрове вікно білим кольором.

pygame.display.flip() - відбувається виведення зображення на ігровий екран.

import pygame

BLACK = (0, 0, 0)

WHITE = (255, 255, 255)

GREEN = (0, 255, 0)

RED = (255, 0, 0)

pygame.init()

size = (700, 500)

screen = pygame.display.set_mode(size)

pygame.display.set_caption("Моя гра")

done = False

clock = pygame.time.Clock()

while not done:

    for event in pygame.event.get():

        if event.type == pygame.QUIT:

            done = True

    screen.fill(WHITE)

    pygame.display.flip()

    clock.tick(60)

pygame.quit()


Перед командою pygame.display.flip() можна розмістити команди малювання та взаємодії ігрових об'єктів. Наприклад, створимо зображення кулі.

pygame.draw.circle(screen,BLACK,(50,50),25,25)

circle - малювання кола. 

screen - місце малювання (ігрове полотно)

BLACK - колір

(50,50) - координати центру кола

25,25 - радіуси по горизонталі та вертикалі

Команда pygame.draw.ellipse(screen,BLACK,(50,50,25,25),1) намалює незафарбоване коло, з товщиною лінії 1.

Команда pygame.draw.rect(screen,BLACK,(rect_x,50,50,50)) намалює зафарбований прямокутник.


Можемо задати анімацію руху кола. Для цього введемо змінні pos_x = 50 (координата побудови по осі Х) та krok=1 (крок зміни координати) перед циклом while not done:

команду малювання змінимо:

pygame.draw.ellipse(screen,BLACK,(pos_x,50,25,25),1)

а після неї додамо команду зміни координати (координату збільшити на 1):

pos_x += krok


Для того, щоб коло відбивалось від меж екрану, введемо перевірку: якщо досягнули межі (pos_x>700), то потрібно не збільшувати координату на 1, а зменшувати. А точніше, крок зміни координати тепер стане від'ємним, а не додатнім.

    if pos_x>700:

        krok = -krok

    pos_x += krok


Подумайте, яку команду потрібно додати, щоб м'яч відбивався від другої межі екрану.

Як зробити так, щоб м'яч рухався не лише по горизонталі, але й по вертикалі?

Як змінити швидкість руху м'яча?

Як змінити напрям (кут) руху м'яча?



https://pygame-zero.readthedocs.io/en/stable/introduction.html

Остання зміна: субота 23 листопада 2019 5:27