Menu
CoddyTech

整数和小数

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

Python 中的数字有两种。int 是整数:3、-40、640。float 带有小数点:0.5、2.0、107.25。

每帧移动 1 个像素,就是每秒移动 60 个像素。要移动得慢一些,可以加上一个浮点数:

moon_x = moon_x + 0.5

现在,moon_x 会依次变为 100、100.5、101.0、101.5。pygame 按整数像素绘制,因此月亮每两帧移动 1 个像素:缓慢移动,每秒 30 个像素。

整数加浮点数会得到浮点数,而且浮点数总会显示小数点,例如 101.0。int() 会去掉小数点后的部分,把浮点数转换成整数:

int(101.5)   # 101
challenge icon

挑战

中等

让月亮慢慢移动。

  1. 在变化部分,每帧给 moon_x 加上 0.5。
  2. 将标签显示为整数:f"Moon x: {int(moon_x)}"。

按“开始”:月亮会移动,标签会显示整数。然后按“检查”。

亲手试试

import pygame

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

# 在这里完成设置,再进入游戏循环。
moon_x = 100
moon_y = 200
font = pygame.font.Font(None, 36)

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

    # 在这里每帧更新一次。

    screen.fill((20, 24, 48))
    # 填充后,在这里绘制。
    pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)
    text = font.render(f"Moon x: {moon_x}", True, (230, 230, 240))
    screen.blit(text, (20, 20))

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

pygame.quit()
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

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

自己练习: Pygame 在线编辑器