添加得分
初始化得分变量 score
for i in range(8):
m = Mob()
all_sprites.add(m)
mobs.add(m)
score = 0
# 游戏主循环
running = True
计算得分
# 检查子弹是否击中了敌人
hits = pygame.sprite.groupcollide(mobs, bullets, True, True)
for hit in hits:
score += 10
m = Mob()
all_sprites.add(m)
mobs.add(m)
显示得分文本
主循环外 draw_text() 文本生成函数
font.render() 渲染文本,其中第二个参数True用于打开/关闭抗锯齿
锯齿,像素块绘制会得到锯齿,
消除锯齿,通过将形状边缘与背景色混合实现平滑过渡。
# ......
clock = pygame.time.Clock()
font_name = pygame.font.match_font('simhei')
def draw_text(surf, text, size, x, y):
font = pygame.font.Font(font_name, size)
text_surface = font.render(text, True, WHITE)
text_rect = text_surface.get_rect()
text_rect.midtop = (x, y)
surf.blit(text_surface, text_rect)
主循环内,绘制背景后,添加 draw_text() 函数调用绘制得分文本
# 绘制/渲染
screen.fill(BLACK)
screen.blit(background, background_rect)
all_sprites.draw(screen)
draw_text(screen, str(score), 18, WIDTH / 2, 10)
# 在绘制所有内容后,刷新显示
pygame.display.flip()