Python pygame动画方向循环不工作
因此,我正在阅读pygame手册。我对Python非常陌生,我读过一本书,部分读完了coursera课程,还浏览了各种网站 我的问题是,;例如,如何使此图像继续在页面上呈之字形 下,右,下,右,下,右-直到它到达页面底部,然后上升到顶部并停止 我对代码的问题是,在它消失之后;向下,向右,向下-它只是继续向下,忽略了我编写的代码Python pygame动画方向循环不工作,python,loops,animation,pygame,Python,Loops,Animation,Pygame,因此,我正在阅读pygame手册。我对Python非常陌生,我读过一本书,部分读完了coursera课程,还浏览了各种网站 我的问题是,;例如,如何使此图像继续在页面上呈之字形 下,右,下,右,下,右-直到它到达页面底部,然后上升到顶部并停止 我对代码的问题是,在它消失之后;向下,向右,向下-它只是继续向下,忽略了我编写的代码 import pygame, sys from pygame.locals import * pygame.init() FPS = 30 fpsClock = py
import pygame, sys
from pygame.locals import *
pygame.init()
FPS = 30
fpsClock = pygame.time.Clock()
DISPLAYSURF = pygame.display.set_mode((1400,1100), 0, 32)
pygame.display.set_caption('mchammy')
WHITE = (255, 255, 255)
pigImg = pygame.image.load('mcsuperpig.png')
pigx = 10
pigy = 10
direction = 'down'
while True:
DISPLAYSURF.fill(WHITE)
if direction == 'down':
pigy += 2
if pigy == 100:
direction = 'right'
elif direction == 'right':
pigx += 2
if pigx == 100:
direction = 'down'
elif direction == 'down':
pigy += 2
if pigy == 200:
direction = 'right'
elif direction == 'right':
pigx += 2
if pigx == 200:
direction = 'down'
elif direction == 'down':
pigy += 2
if pigy += 700:
direction = 'right'
DISPLAYSURF.blit(pig.Img, (pigx, pigy))
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
pygame.display.update()
fpsClock.tick(FPS)
基本上-您误解了while循环 您的条件if/elif子句几乎毫无用处,每次while循环迭代时,它只会输入其中一个。。前两个条款已经涵盖了下选项和右选项,这意味着你永远也无法找到其他选项 如果将其更改为:
if direction == 'down':
pigy += 2
if not pigy % 100:
direction = 'right'
else:
pigx += 2
if not pigx % 100:
direction = 'down'
然后你的图像会在任何方向上每移动100个像素就切换方向
我建议您学习更多关于Python的知识,为您的图像创建一个类,并为运动创建一些适当的函数。使您的代码看起来更漂亮、更干净—我相信您在学习Python的整个过程中都看到过类似的其他代码。如前所述,问题在于您的if语句,它永远不会到达最后三个子句,因为您已经在前两个子句中介绍了它们 请尝试以下方法:
if direction == 'down'
pigy += 2
if (pigy == 100) or (pigy == 200) or (pigy == 700)
direction = 'right'
elif direction == 'right'
pigx += 2
if (pigx == 100) or (pigx == 200)
direction = 'down'
你有if-pigy+=700,这是无效的,因为pigy+=700意味着增加700,所以我假设你的意思是if-pigy==700
希望这能让你走上正轨 谢谢大家!!这对我帮助很大!我试着把我的代码输入到这里,但它总是给我一个缩进错误。你能给我提供一个为图片制作类的例子吗?我很傻。谢谢你的帮助!如果没有的话是有用的!