Menu
CoddyTech

Нажми, чтобы добавить

Часть раздела Python в игровом окне путешествия по Pygame на Coddy. Урок 25 из 32.

Список может расти во время игры. stars.append(item) добавляет элемент в конец.

Щелчок мыши поступает в цикл обработки событий как событие MOUSEBUTTONDOWN, а event.pos — это место, где произошёл щелчок, кортеж (x, y):

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        running = False
    if event.type == pygame.MOUSEBUTTONDOWN:
        stars.append(event.pos)

Каждый щелчок добавляет одну позицию. Часть, отвечающая за отрисовку, уже рисует каждую звезду в списке, поэтому новая звезда появляется в следующем кадре и остаётся там, потому что сохраняется в списке.

В части настройки список изначально пуст: stars = []. Если создать его внутри игрового цикла, он будет очищаться в каждом кадре, и каждая звезда сразу же исчезнет.

challenge icon

Задание

Легко

В цикле событий, когда поступает событие MOUSEBUTTONDOWN, добавь event.pos в stars. Тогда каждый щелчок мыши будет помещать белую звезду.

Попробуйте сами

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# Выполните настройку здесь, перед игровым циклом.
stars = []

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Вносите изменения здесь один раз за кадр.

    screen.fill((20, 24, 48))
    # Рисуйте здесь после заливки фона.
    for star in stars:
        pygame.draw.circle(screen, (255, 255, 255), star, 5)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Все уроки раздела Python в игровом окне

Потренируйтесь самостоятельно: Песочница Pygame