好的,这里的问题是,在恢复单击时,第一个条件满足,变量设置为true。紧接着,事件就像。。。不管第二个变量是真还是假。有什么办法解决这类问题吗?在
for event in pygame.event.get():
if event.type == MOUSEBUTTONDOWN :
x, y = event.pos
if TutorialOn == True:
if x >= 25 and x <= 175 and y >= 350 and y<= 450:
TutorialOn = False
if TutorialOn == False:
if x >= 25 and x <= 175 and y >= 350 and y<= 450:
TutorialOn = True
使用
elif
语句。elif
表示“else if”。如果第一个条件被证明是真的,那么你的第二个条件根本就不会被测试,那么你就不会有这个问题了。在另外,还有一件事需要注意,你的逻辑可以进一步简化。你不需要做
^{pr2}$if TutorialOn == True:
。if
语句为您做到了这一点。如果TutorialOn
碰巧不是true,那么它只有一个可能的布尔值,False!因此,第二个条件不需要测试,您只需使用一个简单的else
语句,根本不需要任何条件。当您不带条件地使用else
语句时,如果前一条if
或elif
语句为False,则该语句后面的代码块将立即执行。请参见以下代码简化:正如@Paulo在评论中指出的,你可以做进一步的简化。因为如果条件
x >= 25 and x <= 175 and y >= 350 and y<= 450
恰好为真,那么您所要做的就是翻转TutorialOn
的布尔值,所以您可以使用一个简单的not
语句来“切换”它。在相关问题 更多 >
编程相关推荐