我想编写一个在python / pygame中显示原始输入的框

时间:2015-05-19 21:05:50

标签: python math input pygame

我想创建一段代码,按下任意键并使用message_to_screen() def打印。我不知道如何做到这一点,并不知道要搜索什么找到它。那里有人可以提供帮助吗?

我正在尝试创建一个提问的数学游戏,然后输入答案。我目前用我的知识不知道如何编程这样的事情并希望得到帮助。

这是我目前的代码:

import pygame
import random
import time

pygame.init()

white = (255,255,255)
black = (0,0,0)
grey = (100,100,100)

display_width = 800
display_height = 600

gameDisplay = pygame.display.set_mode((display_width,display_height))
pygame.display.set_caption('Major League Mathematics')

clock = pygame.time.Clock()

FPS = 30

smallfont = pygame.font.SysFont("Arial", 25)
medfont = pygame.font.SysFont("Arial", 50)
largefont = pygame.font.SysFont("Arial", 100)
menufont = pygame.font.SysFont("Arial", 80)

def text_objects(text,color,size):
    if size == "small":
        textSurface = smallfont.render(text, True, color)
    elif size == "medium":
        textSurface = medfont.render(text, True, color)
    elif size == "large":
        textSurface = largefont.render(text, True, color)
    elif size == "menu":
        textSurface = menufont.render(text, True, color)

    return textSurface, textSurface.get_rect()

def message_to_screen(msg,color,y_displace = 0,size = "small"):
    textSurf, textRect = text_objects(msg,color,size)
    textRect.center = (display_width / 2), (display_height / 2) + y_displace
    gameDisplay.blit(textSurf, textRect)

def input_box():

    for event in pygame.get():
        if event.type == pygame.KEYDOWN:




def startScreen():

    menu = True

    while menu:

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_RETURN:
                menu = False

        gameDisplay.fill(grey)
        message_to_screen("Major League Mathematics", black, -200, "menu")
        message_to_screen("Press Enter to start!", black, 100, "medium")
        pygame.display.update()




def gameLoop():

    gameExit = False
    gameOver = False



    while not gameExit:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                gameExit = True




        gameDisplay.fill(white)
        message_to_screen("test", black, 0, "medium") 
        pygame.display.update()

        clock.tick(FPS)

    pygame.quit()
    quit()


startScreen()
gameLoop()

我希望使用input_box() def作为我的地方,以message_to_screen()显示数字。

请帮忙,我可能需要更多地询问这个项目,因为我刚开始使用python和pygame而且它适用于高中。 如果我需要解释一下,请告诉我。 谢谢!

1 个答案:

答案 0 :(得分:1)

我检查你可以按的每个字母。 如果按下,我将其添加到我的text字符串。 然后我用:

显示我的文字

textimage = basicFont.render(text,True,(0,0,0),(255,255,255))

screen.blit(textimage,(0,0))

您也可以将按键循环放在一个函数中。