Это рабочий код.
import pygame as pg
import sys
from pygame.sprite import Group
from pygame.sprite import Sprite
SCREEN_WIDTH = 400
SCREEN_HEIGHT = 400
BG_COLOR = 230, 230, 230
class Soldier(Sprite):
def __init__(self, x, y, scale):
super().__init__()
self.scale = scale
self.image = pg.image.load("game.png").convert_alpha()
self.rect = self.image.get_rect()
self.rect.center = x, y
self.width = self.image.get_width()
self.height = self.image.get_height()
self.new_width = self.width * self.scale
self.new_height = self.height * self.scale
self.image = pg.transform.scale(self.image, (self.new_width, self.new_height))
pg.init()
screen = pg.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
Soldiers = Group()
Soldier = Soldier(30, 40, 3) # Икс, игрек и скейл
Soldiers.add(Soldier)
while True:
for event in pg.event.get():
if event.type == pg.QUIT:
pg.quit()
sys.exit()
screen.fill(BG_COLOR)
Soldiers.draw(screen)
pg.display.update()
Пожалуйста, в следующий раз вставляйте код в код пайтона
Так проще и сохраняется читаемость:
self.width = self.image.get_width()
self.height = self.image.get_height()
self.new_width = self.width * self.scale
self.new_height = self.height * self.scale
вместо
class Soldier(pygame.sprite.Sprite):
можно импортировать класс Sprite вверху и записывать проще:
from pygame.sprite import Sprite
class Soldier(Sprite):
функция Super вроде бы современней
super().__init__()
вместо
pygame.sprite.Sprite._init_(self)