我希望这些21-34行上的while循环交替出现(一个结束,下一个开始),但是一个简单地停止,下一个不运行。
def update(self):
mv_p = False
while not mv_p:
self.rect.x -= 5
if self.rect.left > width - 750:
mv_p = True
return mv_p
break
while mv_p:
self.rect.y += 5
if self.rect.right < width - 750:
mv_p = False
return mv_p
break
答案 0 :(得分:0)
在循环内部调用return将中断函数/方法执行,并将值返回给调用方。
因此,一旦第一个循环返回mv_p
,您的方法调用就结束了。
答案 1 :(得分:0)
如果希望它们交替出现(第一循环,第二循环,第一循环,第二循环等),则应将它们嵌套在另一个循环中。
def update(self):
mv_p = False
while True:
while not mv_p:
self.rect.x -= 5
if self.rect.left > width - 750:
mv_p = True
break
while mv_p:
self.rect.y += 5
if self.rect.right < width - 750:
mv_p = False
break
#need to draw on the screen here or nothing will be shown
#add condition to exit the function, adding for example a return
#inside af if, otherwise this will be an infinite loop.
如果相反,您只想要第一个循环,第二个循环并退出而无需嵌套它们,只需从函数中删除return
调用即可。