При обновлении экрана персонаж не движется

import pygame

class player:
    def __init__(self,x,y,win):
        self.x = x
        self.y = y
        self.win = win
        self.left = False
        self.right = False
    def draw(self):
        if self.left == True:
            self.win.blit(self.x,self.y)
            self.y - 1

class Game:
    def __init__(self,width,height,bg):
        self.width = width
        self.height = height
        self.bg = bg

    def run(self):
        game_run = True

        pygame.init()
        Bg = pygame.image.load(self.bg)
        screen = pygame.display.set_mode([self.width,self.height])
        fps = 30
        
        p = pygame.image.load('assets/SteamMan.png')
        clock = pygame.time.Clock()
        pygame.display.set_caption('Новое окно')
        while game_run:
            clock.tick(fps)
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    game_run = False
            screen.fill((255, 255, 255))
            screen.blit(Bg,(0,0))
            screen.blit(p, (1, 1))

            player.draw()


            pygame.display.flip()
        pygame.quit()

player = player(10,10,"screen")
Game = Game(1000,1000,"assets/single_background.png")

Game.run()


#def redrawGameWindow():
 #   win.blit(bg, (0, 0))
 #   man.draw(win)

Ответы (1 шт):

Автор решения: CrazyElf

Так с переменной ничего не произойдёт, просто вычислится выражение self.y - 1 и результат его никуда не запишется:

self.y - 1

Видимо, имелось в виду уменьшение переменной self.y на единицу:

self.y -= 1
→ Ссылка