Я решил добавить образы атаки в ходячие, чтобы посмотреть, что произошло, и заставил их загрузить.
Я пытался разбить его и собрать воедино, чтобы попытаться выяснить, что я делаю неправильно, и это может быть проблемой моего опыта.
Я уничтожил свой код, пытаясь выяснить это после того, как кто-то дал мне объяснение о моих уроках. Я подумал, что, может быть, мне следует попытаться настроить его как глобальный, а потом я понимаю, что что-то не так. Я не хочу, чтобы кто-то просто написал код для меня, я должен упомянуть. Но объяснение того, почему я облажался, было бы неплохо.
Некоторые уроки помогают мне, но не так сильно, как когда кто-то говорит мне, где конкретно, где я ошибся. Я думаю, что я добился большего прогресса там.
##a simple punch without the whole animation atm
class attacks(object):
attack = pygame.image.load("atk3.png")
def __init__(self, x, y, width, height, attack):
self.x = x
self.y = y
self.width = width
self.height = height
self.attackCount = 0
def draw(self, win):
## is it my redraw method?
if (self.attack):
if self.attackCount + 1 >= 9:
win.blit(attack, self.attackCount//3(self.x, self.y))
self.attackCount += 1
Так что с классом, настроенным здесь, я уверен, что что-то не так, я изучал форумы, и я знаю, что что-то не так. Я не знаю что, хотя.
def redrawGameWindow():
global walkCount
global attackCount
win.blit(bg, (0, 0))
if walkCount +1 >= 27:
walkCount = 0
bob.draw(win)
jerk.draw(win)
for attack in attacks:
attack.draw(win)
pygame.display.update()
#While true
#This calls the classes created
bob = player(100, 200, 128, 128)
jerk = enemy(500, 200, 164, 100, 600)
attacks = []
run = True
while run:
clock.tick(30)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
keys = pygame.key.get_pressed()
#attempting to make this into a bool that changes the value
if not(bob.attacking):
if keys[pygame.K_SPACE]:
bob.attacking = True
bob.standing = False
bob.left = False
bob.right = False
if keys[pygame.K_LEFT] and bob.x > bob.vel:
bob.x -= bob.vel
bob.left = True
bob.right = False
bob.standing = False
elif keys[pygame.K_RIGHT] and bob.x < 800 - bob.width - bob.vel:
bob.x += bob.vel
bob.right = True
bob.left = False
bob.standing = False
else:
bob.standing = True
bob.walkCount = 0
if not(bob.isJump):
if keys[pygame.K_UP]:
bob.isJump = True
bob.right = False
bob.left = False
bob.walkCount = 0
else:
if bob.jumpCount >= -10:
neg = 1
if bob.jumpCount < 0:
neg = -1
bob.y -= (bob.jumpCount ** 2) * 0.5 * neg
bob.jumpCount -= 1
else:
bob.isJump = False
bob.jumpCount = 10
redrawGameWindow()
pygame.quit()
Я почти уверен, что мой цикл True не имеет к этому никакого отношения, так как я могу бегать и прыгать. И когда я нажимаю пробел, он загружает кадр, который не является атакующим, поэтому я точно знаю, что что-то происходит, когда я нажимаю пробел