Python动画不适用于Fangame Zelda
我的代码没有按我希望的方式工作。我已经尝试将我的var编程为在移动时面向方向。它是油炸出来的。请试着帮助我。非常感谢。当我尝试向上移动时,动画不会显示,但当我向上向右移动时,动画就会向上移动。然而,这是唯一一个以任何方式起作用的 这是我的密码:Python动画不适用于Fangame Zelda,python,animation,game-physics,Python,Animation,Game Physics,我的代码没有按我希望的方式工作。我已经尝试将我的var编程为在移动时面向方向。它是油炸出来的。请试着帮助我。非常感谢。当我尝试向上移动时,动画不会显示,但当我向上向右移动时,动画就会向上移动。然而,这是唯一一个以任何方式起作用的 这是我的密码: import pygame from pygame.locals import * a = 20 # 2 - Initialize the game pygame.init() width, height = 720,540 keys = [False,
import pygame
from pygame.locals import *
a = 20
# 2 - Initialize the game
pygame.init()
width, height = 720,540
keys = [False, False, False, False]
playerpos=[100,100]
screen=pygame.display.set_mode((width, height))
pygame.display.set_caption("Zelda")
Background = (245,204,153)
# 3 - Load images
down1 = pygame.image.load('link_down1.png')
down2 = pygame.image.load('link_down2.png')
up1 = pygame.image.load('link_up1.png')
up2 = pygame.image.load('link_up2.png')
left1 = pygame.image.load('link_left1.png')
left2 = pygame.image.load('link_left2.png')
player = pygame.image.load("resources/images/link.png")
tree = pygame.image.load("resources/images/tree.png")
right = pygame.transform.flip(left1,True,False)
# 4 - keep looping through
while 1:
# 5 - clear the screen before drawing it again
screen.fill(Background)
# 6 - draw the screen elements
screen.blit(player, playerpos)
screen.blit(tree, (0,0))
screen.blit(tree, (0,20))
screen.blit(tree, (0,40))
screen.blit(tree, (20,0))
screen.blit(tree, (20,20))
screen.blit(tree, (20,40))
screen.blit(tree, (40,0))
screen.blit(tree, (40,20))
screen.blit(tree, (40,40))
pygame.display.flip()
# 7 - loop through the events
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key==K_w:
keys[0]=True
elif event.key==K_a:
keys[1]=True
elif event.key==K_s:
keys[2]=True
elif event.key==K_d:
keys[3]=True
if event.type == pygame.KEYUP:
if event.key==pygame.K_w:
keys[0]=False
elif event.key==pygame.K_a:
keys[1]=False
elif event.key==pygame.K_s:
keys[2]=False
elif event.key==pygame.K_d:
keys[3]=False
# check if the event is the X button
if event.type==pygame.QUIT:
# if it is quit the game
pygame.quit()
exit(0)
# 8 - Move player
if keys[0]:
screen.blit(up1, playerpos)
playerpos[1]-=0.2
screen.fill(Background)
screen.blit(up1,playerpos)
screen.blit(tree, (0,0))
screen.blit(tree, (0,20))
screen.blit(tree, (0,40))
screen.blit(tree, (20,0))
screen.blit(tree, (20,20))
screen.blit(tree, (20,40))
screen.blit(tree, (40,0))
screen.blit(tree, (40,20))
screen.blit(tree, (40,40))
elif keys[2]:
screen.blit(down1, playerpos)
playerpos[1]+=0.2
screen.fill(Background)
screen.blit(up1,playerpos)
screen.blit(tree, (0,0))
screen.blit(tree, (0,20))
screen.blit(tree, (0,40))
screen.blit(tree, (20,0))
screen.blit(tree, (20,20))
screen.blit(tree, (20,40))
screen.blit(tree, (40,0))
screen.blit(tree, (40,20))
screen.blit(tree, (40,40))
if keys[1]:
screen.blit(left1, playerpos)
playerpos[0]-=0.2
screen.fill(Background)
screen.blit(up1,playerpos)
screen.blit(tree, (0,0))
screen.blit(tree, (0,20))
screen.blit(tree, (0,40))
screen.blit(tree, (20,0))
screen.blit(tree, (20,20))
screen.blit(tree, (20,40))
screen.blit(tree, (40,0))
screen.blit(tree, (40,20))
screen.blit(tree, (40,40))
elif keys[3]:
screen.blit(right, playerpos)
playerpos[0]+=0.2
screen.fill(Background)
screen.blit(up1,playerpos)
screen.blit(tree, (0,0))
screen.blit(tree, (0,20))
screen.blit(tree, (0,40))
screen.blit(tree, (20,0))
screen.blit(tree, (20,20))
screen.blit(tree, (20,40))
screen.blit(tree, (40,0))
screen.blit(tree, (40,20))
screen.blit(tree, (40,40))
#9
pygame.display.flip()
抱歉,代码过长!;)这不是对您的问题的回答,但您不应该在可以避免的地方重复代码。既然你按下了相同的树,不管按下什么键,你就不应该有这些屏幕。BLIT在IF ILIF块中。另外,如果你想制作一个类似泽尔达的游戏的传奇,考虑学习,并且。好的,非常感谢!!这个问题还没有得到回答。请帮我解决一些不会让我更改代码的问题对不起,代码太长了!;)这不是对您的问题的回答,但您不应该在可以避免的地方重复代码。既然你按下了相同的树,不管按下什么键,你就不应该有这些屏幕。BLIT在IF ILIF块中。另外,如果你想制作一个类似泽尔达的游戏的传奇,考虑学习,并且。好的,非常感谢!!这个问题还没有得到回答。请帮我解决一些不会让我更改代码的问题