使文本一次出现一个字符[PyGame]

时间:2014-05-18 04:37:37

标签: python text dialog pygame

我试图让对话框一次出现一个字符(就像口袋妖怪游戏和其他类似的一样)。

我在互联网上搜索过但未找到任何有用的信息。

我知道这样问的另一个问题,但它并没有解决我想要做的事情。我知道这可以做到,因为我已经看过使用python制作的游戏已经完成了。

3 个答案:

答案 0 :(得分:2)

import pygame, sys
from pygame.locals import *

WINDOW_WIDTH = 500
WINDOW_HEIGHT = 500

pygame.init()
DISPLAYSURF = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT))

BLACK = (  0,   0,   0)
WHITE = (255, 255, 255)

def display_text_animation(string):
    text = ''
    for i in range(len(string)):
        DISPLAYSURF.fill(WHITE)
        text += string[i]
        text_surface = font.render(text, True, BLACK)
        text_rect = text_surface.get_rect()
        text_rect.center = (WINDOW_WIDTH/2, WINDOW_HEIGHT/2)
        DISPLAYSURF.blit(text_surface, text_rect)
        pygame.display.update()
        pygame.time.wait(100)

def main():
    while True:
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()

display_text_animation('Hello World!')
main()

注意:我之前没有使用过pygame,所以这可能不起作用。

答案 1 :(得分:0)

以下效果很好。并停止事件队列的任何重载(因此多行或大量文本不会停止动画)。如果嵌入在不以其他方式处理事件队列的简单应用程序中,则这是必需的。

SELECT A.ID, B.CONCAT('ABC_', A.Day, '_', A.Month, '_', A.Year) AS ABC
FROM A
INNER JOIN B ON A.ID=B.ID

答案 2 :(得分:0)

这有点简单,它创建了一个可以随时使用的功能。在这个例子中,我调用了我的函数'slow'并使它在调用时需要输入一个字符串。输入的内容将逐字符显示。速度取决于'睡眠'附近的值。希望这有帮助。

from time import * #imports all the time functions

def slow(text): #function which displays characters one at a time
    for letters in text: #the variable goes through each character at a time
        print(letters, end = "") #current character is printed
        sleep(0.02) #insert the time between each character shown
#the for loop will move onto the next character

slow("insert text here") #instead of print, use the name of the function

如果按原样运行,它应该一次输出“在此插入文本”一个字符。