在python中,我无法让布尔值每秒在true和false之间变化
我正在做一个游戏,在这个游戏中我想让我的角色左右摇摆,但目前我找不到一个方法来做到这一点。我在这里用了一个布尔值来表示他只在哪一边,以使它更简单。我知道我是个傻瓜,如果这是显而易见的,请不要生气 这是我的代码:在python中,我无法让布尔值每秒在true和false之间变化,python,loops,while-loop,pygame,control-flow,Python,Loops,While Loop,Pygame,Control Flow,我正在做一个游戏,在这个游戏中我想让我的角色左右摇摆,但目前我找不到一个方法来做到这一点。我在这里用了一个布尔值来表示他只在哪一边,以使它更简单。我知道我是个傻瓜,如果这是显而易见的,请不要生气 这是我的代码: LeftRight = True Counter1 = 0 while True: if Counter1 <= 10: Left = True else: Left = False Counter1 += 1
LeftRight = True
Counter1 = 0
while True:
if Counter1 <= 10:
Left = True
else:
Left = False
Counter1 += 1
if Counter1 == 20:
Counter1 = 0
print (Left)
它必须处于一个while循环。正如@DominicKexel所指出的,OP可能不想为了让程序等待一秒钟而停止整个程序。要解决此问题,可以使用pygame.time.Clock,如下所示:
from time import sleep
Left = True
while 1:
Left = not Left # flip the boolean
sleep(1) # wait one second
import pygame
pygame.init()
timer = pygame.time.Clock()
FPS = 60 #(60 frames per second)
i=0
left = True
while True: #your main while loop
timer.tick(FPS)
if i < FPS:
i += 1
else:
left = not left
i = 0
正如@DominicKexel所指出的,OP可能不想为了让程序等待一秒钟而停止整个程序。要解决此问题,可以使用pygame.time.Clock,如下所示:
import pygame
pygame.init()
timer = pygame.time.Clock()
FPS = 60 #(60 frames per second)
i=0
left = True
while True: #your main while loop
timer.tick(FPS)
if i < FPS:
i += 1
else:
left = not left
i = 0
考虑到这必须发生在游戏的主循环中,调用sleep来停止整个游戏一整秒钟是没有多大帮助的,但我承认这个问题不是很清楚。考虑到这必须发生在游戏的主循环中,打电话给sleep让整个游戏停止整整一秒钟是没有多大帮助的,但我承认这个问题不是很清楚。我的回答帮你解决了问题吗?如果是,请随意回答我的答案是否有助于您解决问题?如果是,请随时联系