使用pygame键盘在屏幕上移动文本

2024-05-23 16:50:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用键盘箭头移动屏幕左右两侧的文本,但无法使其工作。我的代码是:

while True :

    font = pygame.font.SysFont("Times New Roman", 20) # Font type # Font style 
    frame = pygame.display.set_mode ((Renderer.CANVAS_WIDTH, Renderer.CANVAS_HEIGHT))

    frame.fill ((49,33,148))

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

        if event.type == pygame.KEYDOWN :

                f = pygame.font.SysFont("Times New Roman", 20) # Font type # Font style 
                Track = font.render("Track : ", True, (255,255,0) )



    Game ()
    pygame.draw.rect(frame, (30,21,95),(50,400,700,170)) # draw a blue box on the screen 
    Track = font.render("Track : ", True, (255,255,0) )
    frame.blit(Track,(80,410))

    Labs = font.render ("Labs :", True, (255,255,0))
    frame.blit(Labs,(80,440))

    Distance = font.render ("Distance :", True, (255,255,0))
    frame.blit(Distance,(80,480))


    pygame.display.update ()  # Update the screen 






pygame.quit ()
quit ()

Tags: eventtruetypetrackrenderframepygamequit
1条回答
网友
1楼 · 发布于 2024-05-23 16:50:30

您应该使用此代码使用pygame在键盘上移动文本

f = pygame.font.SysFont("Times New Roman", 20) # Font type # Font style 
Track = font.render("Track : ", True, (255,255,0) )

xpos = 10
ypos = 10

while True:

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_w:
                ypos -= 5
            if event.key == pygame.K_s:
                ypos += 5
            if event.key == pygame.K_a:
                xpos -= 5
            if event.key == pygame.K_d:
                xpos += 5

    frame.fill((255, 255, 255))
    frame.blit(Track, (xpos, ypos))
    pygame.display.flip()

不过,这只会在你按下按键时起作用,它不会让你按住它。要做到这一点有点复杂。参见:

^{pr2}$

相关问题 更多 >