2014-02-17 380 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將永遠不會改變。