当前位置: 首页 > 知识库问答 >
问题:

pygame窗口显示“未响应”

凤自珍
2023-03-14

当我运行我的pyplay程序的游戏窗口显示没有反应,我也写了退出功能,但我不知道为什么它再次广告再次显示没有反应,我的笔记本电脑是Windows 8和32位

    import pygame

#initializing pygame
pygame.init()

# create game screen
screen = pygame.display.set_mode((800,600))

# Title and Icon
pygame.display.set_caption("Space Invader")
icon = pygame.image.load('spaceship.png')
pygame.display.set_icon(icon)

# Player
playerImg = pygame.image.load('player.png')
playerX = 370
playerY = 480
playerX_change = 0

def player(x,y):
    screen.blit(playerImg,(x,y))

# Game Loop
running = True
while running:

    # RGB - Red, Green, Blue
    screen.fill((0,0,0))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()

        # if keystroke is pressed check the weather its right or left
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                playerX_change = -0.1
            if event.key == pygame.K_RIGHT:
                playerX_change = 0.1 
        if event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                playerX_change = 0.1
        
        # 5 = 5 + -0.1 -> 5 = 5 - 0.1
        # 5 = 5 + 0.1
        playerX += player_change
        player(playerX, playerY)

        pygame.display.update()
    
       

共有1个答案

巫朝明
2023-03-14

这是一个缩进的问题。您必须更新应用程序循环中的显示,而不是事件循环
此外,变量的名称是playerX_change而不是playerX_change,当释放键时,您必须设置playerX_change=0.0,而不是playerX_change=0.1

running = True
while running:

    # RGB - Red, Green, Blue
    screen.fill((0,0,0))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()

        # if keystroke is pressed check the weather its right or left
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                playerX_change = -0.1
            if event.key == pygame.K_RIGHT:
                playerX_change = 0.1 
        if event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                playerX_change = 0.0 # <---- 0.0 instead of 0.1


    #<--| INDENTATION
    # 5 = 5 + -0.1 -> 5 = 5 - 0.1
    # 5 = 5 + 0.1
    playerX += playerX_change
    player(playerX, playerY)

    pygame.display.update()
 类似资料:
  • 这是完整的代码,这是一个滚动程序的原型,它被打破了(尽管如此),但是每当我试图点击它时,我都会看到没有响应的窗口

  • 我正在为平台游戏做教程,但我的Pygame窗口显示一个黑屏。 我不知道怎么解决这个问题。 我尝试再次关闭和打开Visual Studio Code,但没有任何结果。

  • 这是我的代码,请记住,我在几天前学习了python,所以我的代码可能制作不正确,等等。我正在尝试制作一个窗口,该窗口将显示一些文本(测试版),并将显示两个小矩形,我想成为按钮。

  • 我今天下载了LWJGL3,发现它几乎完全重写了。我查阅了一个关于如何创建窗口的教程,但我仍然有创建窗口的问题。 代码运行时没有问题:控制台中没有错误,但窗口没有显示!

  • 导入pygame 来自pygame。本地进口* 从系统导入退出 皮加梅。init() SCREEN_size(1000,560) screen=pygame。陈列设置模式(屏幕大小,0,32) font=pygame。字体。SysFont(“阿尔及利亚”,18) 字体高度=字体。获取_lineSize() 事件文本 pygame.display.update() 而真: pygame.displa

  • 我一直在尝试使用pygame来显示游戏场景,但它似乎已经停止了对我的工作:在pygame关闭之前,它只在我创建的任何屏幕上显示一个灰色框,然后屏幕上应该显示的内容在退出之前短暂闪烁。例如,下面的最小代码显示灰色屏幕5秒钟,然后快速闪烁黑色并退出: 这似乎是屏幕显示的问题,而不是pygame本身的问题,因为我可以使用pg.image制作曲面并将其保存到图像文件中。save(),它们在那里看起来很好。