gpt4 book ai didi

python - Pygame 中不显示 Sprite

转载 作者:行者123 更新时间:2023-11-28 18:02:24 25 4
gpt4 key购买 nike

我不确定我在这里做错了什么。没有出现任何错误,但是当游戏加载时什么也没有出现,只有黑色背景。这是我运行的代码,用于将 Sprite 加载到游戏中。

import pygame
import sys
import os
pygame.init()

"""
Spawn Player
"""

class Player(pygame.sprite.Sprite):
pygame.display.set_mode()
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.images = []
img = pygame.image.load(os.path.join("images", "ninja.jpeg")).convert()
self.images.append(img)
self.image = self.images[0]
self.rect = self.image.get_rect()
def Run(self):
pygame.sprite.Sprite.__init__(self)
self.images = []
for i in range(1,5):
run_img = pygame.image.load(os.path.join("run","ninja_run" + str(i) + ".jpeg")).convert()
self.images.append(run_img)
self.image = self.images[0]
self.rect = self.image.get_rect()

"""
Setup
"""
worldx = 900
worldy = 700
fps = 40
ani = 4
clock = pygame.time.Clock()
world = pygame.display.set_mode([worldx, worldy])

player = Player()
player.rect.x = 32
player.rect.y = 32
player_list = pygame.sprite.Group()
player_list.add(player)

BLUE = (25, 25, 200)
BLACK = (20, 20, 20)
WHITE = (255, 255, 255)
RED = (200, 25, 25)
"""
Main Loop
"""
main = True
while main:
pygame.time.delay(100)

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




#world.blit(backdrop, backdrop_box)
player_list.draw(world)
world.fill(BLACK)
pygame.display.flip()
clock.tick(fps)

我有一个 friend 查看了代码,他说播放器类下的 init 有问题,但除此之外我真的不明白代码中的问题在哪里。

窗口正在正确调用,我得到的背景为黑色,但 sprite 根本不会加载。

我正在使用 this教程在这里让 Sprite 出现。我已经在其他部分设置了移动,唯一似乎不起作用的是围绕 Sprite 旋转的代码。

这里的任何帮助都会很棒。

最佳答案

您立即为 pygame.display.flip() 执行 world.fill(BLACK)
world.fill(BLACK)用黑色填充整个窗口表面并覆盖之前绘制的所有内容。 pygame.display.flip()更新窗口。这会导致窗口完全变黑。

更改说明的顺序以解决问题:

world.fill(BLACK) 
player_list.draw(world)
# world.fill(BLACK) <---- delete
pygame.display.flip()

关于python - Pygame 中不显示 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55217256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com