2014-02-17 218 views
-3

我的程序工作正常(没有错误),但它不会更改一个变量(limit)。为什么以及如何解决这个问题?变量不会改变

import pygame 
import math 

pygame.init() 

screen = pygame.display.set_mode((1200,600)) 

white = (255, 255, 255) 
green = (0, 255, 0) 

o = 450 #second circle y 

ticket5 = True 
limit = 475 

while True: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      False 
      pygame.quit() 

    screen.fill(white) 

pygame.draw.circle(screen, green, (800, o), 75) 
    if o == limit: 
     ticket5 = True 
     limit -= 25 
    elif o == 550: 
     ticket5 = False 
    if ticket == True: 
     o += 1 
    else: 
     o-= 1 
+0

您能显示限制变量的声明,看看它是否只读。 –

+0

你是否在改变函数中的'limit'? – nandhp

+3

@TheodorSolbjørg这是python,没有变量声明或只读标识符之类的东西。 @OP,可能改变'limit'的条件永远不会实现 - 尝试将print语句添加到if/elif块来查看会发生什么。 – l4mpi

回答

2

看起来您正在使用名为ticket5的变量,其值为True。

您稍后检查if ticket == True也许这应该是if ticket5 == True

否则o += 1将永远不会被击中,变量o永远不会。如果o永不增长,那么o == limit永远不会为真,并且limit将永远不会改变。