[英]pygame window showing "not responding"
當我運行我的 pygame 程序時,游戲 window 顯示沒有響應,我也寫了 quit function 但我不知道為什么它再次顯示沒有響應,我的筆記本電腦是 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()
這是Indentation的問題。 您必須在應用程序循環而不是事件循環中更新顯示。
此外,變量的名稱是playerX_change
而不是player_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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.