2012-02-13 16 views
1

我正在使用Python 2.7和Pygame 1.9.1 pygame和IDLE互相不喜歡的事情是不相干的,因爲我試圖將它作爲一個.py文件運行。Python w/Pygame - 這兩組之間的區別?

這工作:

import pygame 

y = 0 
dir = 1 
running = 1 
width = 800 
height = 600 
screen = pygame.display.set_mode((width, height)) 
linecolor = 255, 0, 0 
bgcolor = 0, 0, 0 

while running: 
    event = pygame.event.poll() 
    if event.type == pygame.QUIT: 
     running = 0 

    screen.fill(bgcolor) 
    pygame.draw.line(screen, linecolor, (0, y), (width-1, y)) 

    y += dir 
    if y == 0 or y == height-1: dir *= -1 

    pygame.display.flip() 

但是,這並不工作:

import pygame 

y = 0 
dir = 1 
running = 1 
width = 800 
height = 600 
linecolor = 255, 0, 0 
bgcolor = 0, 0, 0 
screen = pygame.display.set_mode((640, 400)) 


while running: 
     event = pygame.event.poll() 
     if event.type == pygame.QUIT: 
      running = 0 

     screen.fill(bgcolor) 
     pygame.draw.aaline(screen, linecolor, (0, y), (width-1, y) 

     y += dir 
     if y == 0 or y == height-1: dir *= -1 

     pygame.display.flip() 

任何人可以解釋的差異,爲什麼一個作品比其他?

唯一diffrence似乎是兩條線的位置:

linecolor = 255, 0, 0 

bgcolor = 0, 0, 0 
+0

你是什麼意思的「不工作」和「不工作」? Python解釋器有語法錯誤嗎?程序是否運行,但沒有產生預期的結果?如果是這樣,預期的和實際的結果是什麼? – millimoose 2012-02-13 02:53:38

回答

4

但是,這不是唯一的區別。這是一個語法錯誤:

pygame.draw.aaline(screen, linecolor, (0, y), (width-1, y) 

它也不同於上面,它調用aaline,而不是line和縮進8個空格,而不是4.任何這些差異可能會造成一個問題(因爲8對我來說,空間縮小意味着可能會混合使用製表符和空格。)

此外,一般來說,當您從一段代碼中得到錯誤時發佈堆棧跟蹤是一個好主意。它們包含有用的信息。

+0

啊,我現在看到了......我放了一個括號而不是兩個。那麼現在我覺得很蠢<_ <。感謝幫助的人。 – 2012-02-13 02:58:10

+2

@NathanAbbott:實際上,您應該閱讀錯誤消息和控制檯上的回溯 - 行號清楚地在這種情況下打印出來。 – jsbueno 2012-02-13 03:09:37

+0

@NathanAbbott:如果它解決了你的問題,請不要忘記接受senderle的回答:) – 2012-02-13 03:11:58