点击添加
本课属于 Coddy Pygame 学习旅程的“游戏窗口中的 Python”单元。第 26 课,共 33 课。
游戏运行时,列表可以不断增长。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 在线编辑器