我希望这些while循环在第21-34行交替(一个结束,下一个开始),但一个只是停止而下一个不运行。
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
在循环内部调用return将破坏函数/方法执行并将值返回给调用者。
因此,只要第一个循环返回mv_p
,您的方法调用就结束了。
如果你想让它们交替(第一个循环,第二个循环,第一个循环,第二个循环等),你应该将它们嵌套在另一个循环中。
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
调用。