Нажми, чтобы добавить
Часть раздела 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 = []. Если создать его внутри игрового цикла, он будет очищаться в каждом кадре, и каждая звезда сразу же исчезнет.
Задание
ЛегкоВ цикле событий, когда поступает событие 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