Как переопределить player.images
Помогите пожалуйста, я уже много часов сижу над тем, как переопределить player.images. Всё никак не работает и ничего не подходит. Пишу игру на pgzero + использую pgzero helper. Это просто питон файл, который должен лежать в папке с вашим проектом. Скачать можно от сюда: https://github.com/QuirkyCort/pgzhelper От туда вам понадобится только 1 файл pgzhelper.py Мне надо, чтобы при нажатии стрелки влево, игра отрисовывала картинки для левой хотьбы. Помогите пожалуйста
Теперь прикрепляю код:
import pgzrun
import time
from pgzhelper import *
TITLE = "Arkanoid"
WIDTH = 1500
HEIGHT = 700
enemy = Actor("enemy1.png")
enemy.pos = (1400, 540)
enemy.images = ['enemy1.png','enemy2.png','enemy3.png','enemy4.png','enemy5.png','enemy6.png']
enemy.fps = 10
#Player
leftOrRight = False
player = Actor("stay.png", anchor=('left', 'center'))
player.pos = (50, 540)
rightt = ['walk1','walk2','walk3','walk4','walk5','walk6']
player.images = rightt
print(player.images)
player.fps = 30
player_speed = 5 # Скорость движения персонажа
#EndPlayer
bullet_speed = 10
bullet = Actor("bullet.png", anchor=('left', 'center'))
bullets = []
checkSkill = False
skill = Actor('skillready.jpg')
skill.pos = (30, 30)
bullet_cooldown = 0.5 # Время в секундах между выстрелами
last_bullet_time = time.time()
last_Megabullet_time = time.time()
megabullet_cooldown = 5.0
a = 0
kd = 5
#прыжок
velocity = 0 # Как быстро персонаж будет перемещаться вверх
gravity = 1 # гравитация
def draw():
screen.blit("backg.jpg", (0, 0))
player.draw()
skill.draw()
enemy.draw()
for i in bullets:
i.draw()
if checkSkill == True:
skill.image = 'skillready.jpg'
elif checkSkill == False:
skill.image = 'skillkd.jpg'
screen.draw.text(str(kd), (50, 50), color="white", fontsize=40)
def update():
global bullets, last_bullet_time, last_Megabullet_time, a, checkSkill, velocity
#enemy
enemy.animate()
enemy.x -= 5
print(player.images, "из update")
if enemy.x <= 0:
enemy.x = 1400
#end_enemy
current_time = time.time()
if current_time - last_Megabullet_time > megabullet_cooldown:
checkSkill = True
if keyboard.left:
print(player.images, "из left")
player.animate()
player.x -= player_speed
elif keyboard.right:
print(player.images, "из right")
player.animate()
player.x += player_speed
elif keyboard[keys.SPACE]:
current_time = time.time()
if current_time - last_bullet_time > bullet_cooldown:
player.image = "attack2.png"
bullet = Actor("bullet.png", anchor=('left', 'center'))
bullet.pos = (player.x + 50, player.y) # Позиция пули относительно изображения персонажа
bullets.append(bullet)
last_bullet_time = current_time
sounds.shot.play()
elif keyboard.rshift:
current_time = time.time()
if current_time - last_Megabullet_time > megabullet_cooldown:
checkSkill = True
player.image = "attack2.png"
sounds.megashot.play()
delay = 1.45 # Задержка увеличивается с увеличением индекса
clock.schedule(start, delay)
last_Megabullet_time = current_time
a = 0
else:
player.image = "stay.png"
for i in bullets:
i.x += bullet_speed
if i.right > WIDTH:
bullets.remove(i)
if keyboard.up and player.y == 540:
velocity = -10
player.y += velocity
velocity += gravity
#Остановить падение зомби c экрана
if player.y > 540:
velocity = 0
player.y = 540
def start():
clock.schedule_interval(spawn_bullet, 0.1)
#clock.unschedule(spawn_bullet)
def minusKd():
global kd
if kd >= 1:
kd -= 1
else:
kd = 5
def spawn_bullet():
global bullets, a, checkSkill
if a == 10:
clock.unschedule(spawn_bullet)
else:
bullet = Actor("bullet.png", anchor=('left', 'center'))
bullet.pos = (player.x + 50, player.y)
bullets.append(bullet)
player.x -= 3
a += 1
checkSkill = False
# def animate_left():
# player.image = player_images_left.pop(0)
# player_images_left.append(player.image)
# def animate_right():
# player.image = player_images_right.pop(0)
# player_images_right.append(player.image)
if checkSkill == False:
clock.schedule_interval(minusKd, 1.0)
music.play("musicback.mp3")
music.set_volume(0.1)
pgzrun.go()