2012-02-13 9 views
1

私はPython 2.7とPygame 1.9.1を使用しています pygameとIDLEがお互い気に入らないことがいくつかあるという事実は、それを.pyファイルとしても実行しようとすると無関係です。PythonとのPython - これらの2つのセットの違いは?

これは動作します:

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

答えて

4

しかし、それは唯一の違いはありません。これは構文エラーです:

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

ではなくlineaalineを呼び出し、これらの違いはいずれも8以降(問題を引き起こしている可能性があります8つのスペースの代わりに4をインデントされている、それはまた、上記とは異なり空白のインデントは、私には、タブとスペースの可能な組み合わせをお勧めします。)

また、一般的には、コードからエラーを取得するスタックトレースを投稿することをお勧めします。有用な情報が含まれています。

+0

ああ、私は今それを見る...私は2つではなく、1つのかっこを置く。まあ、今私は愚かな気がします<_ <。ヘルプマンに感謝します。 –

+2

@ NathanAbbott:実際には、エラーメッセージとコンソール上のトレースバックを読んでください。このような場合は、行番号が明確に表示されます。 – jsbueno

+0

@ NathanAbbott:あなたの問題を解決した場合、senderleの回答を受け入れることを忘れないでください:) –