Pygame - 在显示窗口上显示变量

时间:2013-12-12 14:50:34

标签: python pygame

我正在使用Pygame,并想出了如何在屏幕上显示文字。但是我怎样才能让它适用于变量,所以它不会显示“Hello”,而是显示我的变量。例如,假设我有一个变量,我想在显示面板上显示它/对它做出的任何更改。因此,如果我的变量是1,并且如果添加了1,我想显示更改的变量。

#Dice random number generation
diceRoll = random.randrange(0, 5)

#Text through GUI
myFont = pygame.font.SysFont("Times New Roman", 18)

randNumLabel = myFont.render("You have rolled:", 1, black)
diceDisplay = myFont.render(diceRoll, 1, black)

screen.blit(randNumLabel, (520, 20))
screen.blit(diceDisplay, (520, 30))

pygame.display.flip()

1 个答案:

答案 0 :(得分:2)

你的问题究竟在哪里?您的代码不会在任何地方显示“Hello”。

我看到的唯一问题是Font.render的第一个参数必须是str,并且您没有任何类型的循环,因此窗口会立即关闭。

但这很容易解决:

import pygame
import random

pygame.init()
black=(0,0,0)
screen = pygame.display.set_mode((800,600))
screen.fill((255,255,255))

#Dice random number generation
diceRoll = random.randrange(0, 5)

#Text through GUI
myFont = pygame.font.SysFont("Times New Roman", 18)

randNumLabel = myFont.render("You have rolled:", 1, black)
### pass a string to myFont.render
diceDisplay = myFont.render(str(diceRoll), 1, black)

screen.blit(randNumLabel, (520, 20))
screen.blit(diceDisplay, (520, 30))

### main loop
run = True
while run:
    for e in pygame.event.get():
        if e.type == pygame.QUIT:
            run = False
    pygame.display.flip()