Menu
CoddyTech

你自己的函数

本课属于 Coddy Pygame 学习旅程的“游戏窗口中的 Python”单元。第 21 课,共 33 课。

函数是一组带名称的代码行,你可以随时运行。用 def 来定义函数:

def draw_star():
    pygame.draw.line(screen, (255, 240, 200), (310, 240), (330, 240), 2)
    pygame.draw.line(screen, (255, 240, 200), (320, 230), (320, 250), 2)
    pygame.draw.circle(screen, (255, 240, 200), (320, 240), 4)

def、函数名、圆括号和冒号;函数体要缩进写在下面。定义函数不会绘制任何内容:Python 只会记住函数名下面的代码行。

要运行函数,就要调用它:写出函数名并加上括号。

draw_star()

在设置部分,也就是游戏循环之前定义函数;然后在需要的地方于循环中调用它们。从第一节课开始,你就已经调用过函数了:print() 和 pygame.draw.circle() 也是函数,由其他人编写。

pygame.draw.line(screen, colour, start, end, width) 会绘制两点之间的线段。

challenge icon

挑战

中等

把星星放进一个函数里。

  1. 在设置部分,创建 def draw_star():,并把绘制星星的三行代码移到函数体中。
  2. 在绘制部分,调用 draw_star()。

按“开始”:星星仍然显示在中间。然后按“检查”。

亲手试试

import pygame

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

# 在这里进行设置,放在游戏循环之前。

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

    # 在这里修改内容,每帧执行一次。

    screen.fill((20, 24, 48))
    # 填充背景后,在这里绘制。
    pygame.draw.line(screen, (255, 240, 200), (310, 240), (330, 240), 2)
    pygame.draw.line(screen, (255, 240, 200), (320, 230), (320, 250), 2)
    pygame.draw.circle(screen, (255, 240, 200), (320, 240), 4)

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

pygame.quit()

游戏窗口中的 Python中的所有课

自己练习: Pygame 在线编辑器