【发布时间】:2016-10-22 05:22:55
【问题描述】:
我有一个类,其中我有一个方法,其中有一个循环。我想要做的是在顶部只运行一次声明milliseconds = 0。
但是,当我运行附加的代码时,它会一直重置为 0。然后我想要的是,如果通过,毫秒可以以每次 200 的速度增加。我尝试将milliseconds = 0 放在课堂下或课堂外,但它不起作用。我能做些什么?
编辑:我的新问题,我怎样才能使 Python 可以计数到 5000 毫秒,然后再进行下一段代码。
class Flag():
def Flagrun(self):
flagactive = 'No'
milliseconds = 0
flaggen = str(randint(1,4))
milliseconds += 200
print(milliseconds)
if milliseconds > 1000:
if flaggen == '1':
window.blit(flag, (58,89))
collisiondet()
flagactive = 'Yes'
milliseconds = 0
elif flaggen == '2':
window.blit(flag, (464,82))
collisiondet()
flagactive = 'Yes'
milliseconds = 0
elif flaggen == '3':
window.blit(flag, (343,215))
collisiondet()
flagactive = 'Yes'
milliseconds = 0
elif flaggen == '4':
window.blit(flag, (66,535))
collisiondet()
flagactive = 'Yes'
milliseconds = 0
【问题讨论】:
-
您的
if语句应该在函数内部吗?在flagrun内部,milliseconds=0创建了一个局部变量。 -
你做了什么把它放在“课下或课外”不起作用?
-
循环在哪里?似乎代码不完整。正如@cdarke 所说,您将毫秒放入函数中,因此它是一个局部变量。
-
在所有代码中使用
self.miliseconds并在__init__中设置self.miliseconds = 0 -
我试过 self.milliseconds 还是不行。
标签: python function class pygame