pygame window 运行 上什么都没显示
pygame window showing nothing on run
我正在尝试使用 pygame 制作游戏,但是每当我 运行 我的游戏时,在我关闭 window 之前什么都没有显示,然后东西会出现一秒钟。我不知道发生了什么,但我认为这与我的 display.update 有关。这是我的代码:
import pygame
import colorama
import math
import random #All needed libraries
import time
import os
from colorama import init, Fore, Back, Style #All needed extras
from pygame.locals import (
K_UP,
K_DOWN,
K_LEFT,
K_RIGHT,
K_ESCAPE,
KEYDOWN,
QUIT,
)
init()
pygame.init()
SCREEN_WIDTH = 400
SCREEN_HEIGHT = 400
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
running = True
while running:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_ESCAPE:
running = False
elif event.type == QUIT:
running = False
screen.fill((255, 255, 255))
surf = pygame.Surface((50, 50))
surf.fill((0, 0, 0))
rect = surf.get_rect()
screen.blit(surf, (SCREEN_WIDTH/2, SCREEN_HEIGHT/2))
rect.update()
pygame.display.update()
为什么它不起作用?
这是Indentation的事情。场景必须在应用程序循环中而不是在应用程序循环之后绘制。
此外 pygame.Rect.update
没有按照您的预期进行。它用于改变矩形。你根本不需要它。
while running:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_ESCAPE:
running = False
elif event.type == QUIT:
running = False
# INDENTATION
#-->|
screen.fill((255, 255, 255))
surf = pygame.Surface((50, 50))
surf.fill((0, 0, 0))
rect = surf.get_rect()
screen.blit(surf, (SCREEN_WIDTH/2, SCREEN_HEIGHT/2))
#rect.update() <--- DELETE
pygame.display.update()
我正在尝试使用 pygame 制作游戏,但是每当我 运行 我的游戏时,在我关闭 window 之前什么都没有显示,然后东西会出现一秒钟。我不知道发生了什么,但我认为这与我的 display.update 有关。这是我的代码:
import pygame
import colorama
import math
import random #All needed libraries
import time
import os
from colorama import init, Fore, Back, Style #All needed extras
from pygame.locals import (
K_UP,
K_DOWN,
K_LEFT,
K_RIGHT,
K_ESCAPE,
KEYDOWN,
QUIT,
)
init()
pygame.init()
SCREEN_WIDTH = 400
SCREEN_HEIGHT = 400
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
running = True
while running:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_ESCAPE:
running = False
elif event.type == QUIT:
running = False
screen.fill((255, 255, 255))
surf = pygame.Surface((50, 50))
surf.fill((0, 0, 0))
rect = surf.get_rect()
screen.blit(surf, (SCREEN_WIDTH/2, SCREEN_HEIGHT/2))
rect.update()
pygame.display.update()
为什么它不起作用?
这是Indentation的事情。场景必须在应用程序循环中而不是在应用程序循环之后绘制。
此外 pygame.Rect.update
没有按照您的预期进行。它用于改变矩形。你根本不需要它。
while running:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_ESCAPE:
running = False
elif event.type == QUIT:
running = False
# INDENTATION
#-->|
screen.fill((255, 255, 255))
surf = pygame.Surface((50, 50))
surf.fill((0, 0, 0))
rect = surf.get_rect()
screen.blit(surf, (SCREEN_WIDTH/2, SCREEN_HEIGHT/2))
#rect.update() <--- DELETE
pygame.display.update()