Pygame 仅显示黑屏
Pygame showing only a black screen
我是 Pygame 的新手,所以我在开始实际游戏之前做了一些测试,但是当我执行代码时,我得到的只是黑屏,即使我已经指定了颜色并且我也尝试使用 blit
方法,但仍然只显示黑屏。这是我的代码和 Ubuntu 20.04 和 Python 3.8 上的输出:
import pygame
pygame.init()
s = pygame.display.set_mode((1000,500))
testImg = pygame.image.load('player.png')
testX = 500
testY = 250
def test(x, y):
s.blit(testImg, (x,y))
# Game Loop:
running = True
while running:
s.fill((113,113,113))
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
test(testX, testY)
这是输出:
您错过了 pygame.display.flip()
在应用程序循环结束时更新显示:
running = True
while running:
s.fill((113,113,113))
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
test(testX, testY)
pygame.display.flip() # <---
最小的 pygame 应用程序循环必须:
- 通过
pygame.event.pump()
or pygame.event.get()
处理事件。
- 根据输入事件和时间(分别为帧)更新对象的游戏状态和位置
- 清除整个显示或绘制背景
- 绘制整个场景(
blit
所有对象)
- 通过
pygame.display.update()
或 pygame.display.flip()
更新显示
我是 Pygame 的新手,所以我在开始实际游戏之前做了一些测试,但是当我执行代码时,我得到的只是黑屏,即使我已经指定了颜色并且我也尝试使用 blit
方法,但仍然只显示黑屏。这是我的代码和 Ubuntu 20.04 和 Python 3.8 上的输出:
import pygame
pygame.init()
s = pygame.display.set_mode((1000,500))
testImg = pygame.image.load('player.png')
testX = 500
testY = 250
def test(x, y):
s.blit(testImg, (x,y))
# Game Loop:
running = True
while running:
s.fill((113,113,113))
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
test(testX, testY)
这是输出:
您错过了 pygame.display.flip()
在应用程序循环结束时更新显示:
running = True
while running:
s.fill((113,113,113))
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
test(testX, testY)
pygame.display.flip() # <---
最小的 pygame 应用程序循环必须:
- 通过
pygame.event.pump()
orpygame.event.get()
处理事件。 - 根据输入事件和时间(分别为帧)更新对象的游戏状态和位置
- 清除整个显示或绘制背景
- 绘制整个场景(
blit
所有对象) - 通过
pygame.display.update()
或pygame.display.flip()
更新显示