整数和小数
本课属于 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挑战
中等让月亮慢慢移动。
- 在变化部分,每帧给
moon_x加上0.5。 - 将标签显示为整数:
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()
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
游戏窗口中的 Python中的所有课
自己练习: Pygame 在线编辑器