复合赋值和计数变量的问题



我想做的事情:
精灵的角度每十秒钟就会改变一次。如果角度发生变化,请在degreeChange变量中添加一个。当上述变量达到5时,将日期变量更改为1,并重置changeDegree变量。如果当天达到一个月或30天,则程序结束。

当程序运行时,它将在控制台中显示当天及其相应的温度。

我的问题:
有两种情况:1(没有输出,或者2(程序只在循环中打印前8天和温度。

这是我的代码供参考:

# create timer event
change_delay = 10000 # 10 second(s)
change_event = pg.USEREVENT + 1
pg.time.set_timer(change_event, change_delay)
angles = [0, 45, 90, 135, 180, 225, 270, 315]
while not done:
for event in pg.event.get():
if event.type == pg.QUIT:
done = True
degreeChange = 0
day = 0
temp = [9, 14, 18, 18, 16, 21,
27, 23, 19, 25, 28, 28,
28, 25, 27, 27, 39, 50,
52, 46, 45, 46, 50, 50,
46, 46, 41, 43, 55, 61]
# receive timer event
if event.type == change_event:
degreeChange += 1
if degreeChange == 5:
degreeChange = degreeChange - 5
day += 1
print("day: ", day)
print("temp: ", temp[day])
if day >= 31:
pg.quit()
for i in range(0, 7):
# change angle by 45°
ball.vel = ball.vel.rotate(angles[i])

如果您需要查看我的其余代码,请告诉我。谢谢:(

for event in pg.event.get():
if event.type == pg.QUIT:
done = True
degreeChange = 0
day = 0

因此,每次从事件队列中获取事件时,degreeChangeday值都会重置。这显然不是您想要的,因为它在每次可能的机会增加degreeChange之前都会重置,因此它只能是0或1。

最新更新