与、或
本课属于 Coddy Pygame 学习旅程的“游戏窗口中的 Python”单元。第 14 课,共 33 课。
or 用来连接两个条件,只要其中一个条件为真,结果就为真。只有两个条件都为真时,and 的结果才为真。
if keys[pygame.K_LEFT] or keys[pygame.K_a]:
moon_x = moon_x - 4
if keys[pygame.K_RIGHT] and moon_x < 580:
moon_x = moon_x + 4第一个 if 会在按住左方向键或 A 键时让月亮向左移动:两个键中的任意一个都可以。第二个 if 只有在按住右方向键且月亮位于 x 坐标 580 左侧时,才会让月亮向右移动,因此月亮会在到达窗口边缘前停下。
not 会把真变成假:松开左方向键时,not keys[pygame.K_LEFT] 的结果为真。
挑战
中等修改这两个按键判断。
- 按住 A 键也会像按住左方向键一样让月亮向左移动。使用
or。 - 只有当
moon_x < 580时,按住右方向键才会让月亮移动。使用and。
按“开始”:按住 A 键会让月亮向左移动,按住右方向键会让月亮在 x 580 处停下。然后按“检查”。
亲手试试
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# 在这里完成设置,放在游戏循环之前。
moon_x = 320
moon_y = 240
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 在这里修改内容,每帧执行一次。
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
moon_x = moon_x - 4
if keys[pygame.K_RIGHT]:
moon_x = moon_x + 4
screen.fill((20, 24, 48))
# 填充屏幕后,在这里绘制。
pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)
pygame.display.flip()
clock.tick(60)
pygame.quit()
游戏窗口中的 Python中的所有课
自己练习: Pygame 在线编辑器