У меня проблема с отрисовкой спрайта в группе (). Я планирую позже нарисовать несколько спрайтов, когда эта проблема будет решена.
Я попытался решить несколько вещей, таких как переименование имени класса, упрощение кода до основ (при этом изображение просто добавляется как спрайт в группе ()). Я даже продолжил проверять свою программу практики пигмеев и подтвердил, что действительно что-то напутал с этим проектом. Я не думаю, что переустановка библиотеки Pygame также решит проблему.
Во всех случаях вот мои коды:
main.py
import sys
from pygamerectangle import Background
from settings import settings
import GFunctions as gf
from pygame.sprite import Group
if __name__ == "__main__":
pygame.init()
setting = settings()
screen = pygame.display.set_mode((setting.width, setting.height))
pygame.display.set_caption("Pygame Theory")
background = 60,60,60
BackgroundGroup = Background()
BackgroundGroup = Group()
gf.BackgroundRepeat(BackgroundGroup)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
screen.fill(background)
BackgroundGroup.draw(screen)
pygame.display.flip()
pygamerectangle.py
import pygame
from pygame.sprite import Sprite
class Background(Sprite):
def __init__(self):
super().__init__()
self.img = pygame.image.load("background.png")
self.rect = self.img.get_rect()
GFunctions.py
import pygame
from pygamerectangle import Background
def BackgroundRepeat(BackgroundGroup):
BackgroundSample = Background()
BackgroundGroup.add(BackgroundSample) # Used as part of the fundamentals to add a single sprite.
# The code after this contains my plan to repeat the image;
# similar to old-school websites that had repeating
# backgrounds.
# BackgroundSampleWidth = BackgroundSample.rect.width
# ScreenAvailableSpace = setting.width - 2 * BackgroundSampleWidth
# NumberOfBackgrounds = int(ScreenAvailableSpace / (2 * BackgroundSampleWidth))
# for BackgroundRepeating in range(NumberOfBackgrounds):
# Backgrounds = Background(setting, screen)
# Backgrounds.x = BackgroundSampleWidth + 2 * BackgroundSampleWidth * BackgroundRepeating
# Backgrounds.rect.x = Backgrounds.x
# BackgroundGroup.add(Backgrounds)
Примечание. Под GFunctions.py я понимаю, что некоторые вещи не будут работать, когда я раскомментирую коды, так как в них отсутствуют аргументы, такие как настройки. Я сделал это временно, так как понял, что это не является частью проблемы.
И вот ошибка, которую я получаю:
AttributeError: «У фонового объекта нет атрибута» image '
Для тех, кому интересно, какой у меня фоновый рисунок: Это изображение 8x8.
Заранее спасибо!