Фон продолжает повторять начало изображения при перемещении персонажа влево или вправо (работа с длинным одиночным изобр ⇐ Python
Фон продолжает повторять начало изображения при перемещении персонажа влево или вправо (работа с длинным одиночным изобр
Изображение проблемы
длинное фоновое изображение
Эээ, я пытался реализовать прокрутку, при которой, когда персонаж достигает определенной точки, фон соответственно перемещается влево или вправо (люди обычно называют это «камерой»).
Вот код, который у меня есть....
импортировать pygame из импорта pygame_functions * #общая настройка pygame.init() pygame.display.set_caption("Бродячие кошки") #Игровой экран screenSize=pygame.display.set_mode((640,360)) background=pygame.image.load("E:\my_folder\game\CompleteBackground.png") ЧЕРНЫЙ= (0,0,0,255) #Переменные вел = 5 isJump = Ложь jumpCount=8 х= 20 у= 300 ш=64 ч=64 слева = Ложь правильно = Ложь Количество шагов=0 часы = pygame.time.Clock() ФПС=20 dlegato= pygame.image.load("E:\my_folder\game\stand.png") walkR=[pygame.image.load("E:\my_folder\game\walk1.png"),pygame.image.load("E:\my_folder\game\walk2.png"),pygame.image.load(" E:\my_folder\game\walk3.png"),pygame.image.load("E:\my_folder\game\walk4.png")] walkL=[pygame.image.load("E:\my_folder\game\Lwalk1.png"),pygame.image.load("E:\my_folder\game\Lwalk2.png"),pygame.image.load(" E:\my_folder\game\Lwalk3.png"), pygame.image.load("E:\my_folder\game\Lwalk4.png")] защита redrawGameScreen(): глобальный WalkCount screenSize.blit(фон,(0,0)) если walkCount + 1 >= 8: WalkCount = 0 если осталось: screenSize.blit(walkL[walkCount//2],(x,y)) WalkCount += 1 Элиф права: screenSize.blit(walkR[walkCount//2],(x,y)) WalkCount += 1 еще: screenSize.blit(idlegato,(x,y)) pygame.display.update() #Основная игра game_running = Истина пока игра_работает: часы.тик(20) для события в pygame.event.get(): если event.type == pygame.QUIT: game_running = Ложь ключи = pygame.key.get_pressed() если ключи[pygame.K_LEFT] и x > vel: х -= скорость влево = Истина фон.прокрутка(5,0) правильно = Ложь ключи elif[pygame.K_RIGHT]: х += уровень правильно = Истина фон.прокрутка(5,0) влево = Ложь еще: правильно = Ложь влево = Ложь WalkCount=0 если нет (isJump): если ключи[pygame.K_UP]: isJump=Истина правильно = Ложь влево = Ложь WalkCount=0 еще: если jumpCount >= -8: отрицательный = 1 если jumpCount < 0: отрицательный =-1 y -= (jumpCount**2)*0,5*отрицательный jumpCount -= 1 еще: isJump = Ложь jumpCount=8 перерисоватьGameScreen() pygame.quit() Это тоже странно: когда персонаж движется влево, фон по-прежнему ведет себя так же странно, как и при движении вправо.
Изображение проблемы
длинное фоновое изображение
Эээ, я пытался реализовать прокрутку, при которой, когда персонаж достигает определенной точки, фон соответственно перемещается влево или вправо (люди обычно называют это «камерой»).
Вот код, который у меня есть....
импортировать pygame из импорта pygame_functions * #общая настройка pygame.init() pygame.display.set_caption("Бродячие кошки") #Игровой экран screenSize=pygame.display.set_mode((640,360)) background=pygame.image.load("E:\my_folder\game\CompleteBackground.png") ЧЕРНЫЙ= (0,0,0,255) #Переменные вел = 5 isJump = Ложь jumpCount=8 х= 20 у= 300 ш=64 ч=64 слева = Ложь правильно = Ложь Количество шагов=0 часы = pygame.time.Clock() ФПС=20 dlegato= pygame.image.load("E:\my_folder\game\stand.png") walkR=[pygame.image.load("E:\my_folder\game\walk1.png"),pygame.image.load("E:\my_folder\game\walk2.png"),pygame.image.load(" E:\my_folder\game\walk3.png"),pygame.image.load("E:\my_folder\game\walk4.png")] walkL=[pygame.image.load("E:\my_folder\game\Lwalk1.png"),pygame.image.load("E:\my_folder\game\Lwalk2.png"),pygame.image.load(" E:\my_folder\game\Lwalk3.png"), pygame.image.load("E:\my_folder\game\Lwalk4.png")] защита redrawGameScreen(): глобальный WalkCount screenSize.blit(фон,(0,0)) если walkCount + 1 >= 8: WalkCount = 0 если осталось: screenSize.blit(walkL[walkCount//2],(x,y)) WalkCount += 1 Элиф права: screenSize.blit(walkR[walkCount//2],(x,y)) WalkCount += 1 еще: screenSize.blit(idlegato,(x,y)) pygame.display.update() #Основная игра game_running = Истина пока игра_работает: часы.тик(20) для события в pygame.event.get(): если event.type == pygame.QUIT: game_running = Ложь ключи = pygame.key.get_pressed() если ключи[pygame.K_LEFT] и x > vel: х -= скорость влево = Истина фон.прокрутка(5,0) правильно = Ложь ключи elif[pygame.K_RIGHT]: х += уровень правильно = Истина фон.прокрутка(5,0) влево = Ложь еще: правильно = Ложь влево = Ложь WalkCount=0 если нет (isJump): если ключи[pygame.K_UP]: isJump=Истина правильно = Ложь влево = Ложь WalkCount=0 еще: если jumpCount >= -8: отрицательный = 1 если jumpCount < 0: отрицательный =-1 y -= (jumpCount**2)*0,5*отрицательный jumpCount -= 1 еще: isJump = Ложь jumpCount=8 перерисоватьGameScreen() pygame.quit() Это тоже странно: когда персонаж движется влево, фон по-прежнему ведет себя так же странно, как и при движении вправо.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение