2017-09-25 11 views
-1

パラメータとしてタプルを使用して:pygameのダウンロードポリゴン、私はそうのように、画面上にポリゴンを描画したい

screen = pygame.display.set_mode(1100, 692) 
temp = (653,333),(680,444),(680,444),(653,445) 
pygame.draw.polygon(screen,(0, 0, 255),temp,0) 

私は何をしたいの使用「TEMP」にポリゴンの座標を渡すことです関数を描画しますが、そのまま 'temp'を使ってこの処理をしようとすると、プログラムは実行されますが、ポリゴンは表示されません。私は 'temp'の内容をdraw.polygon関数に直接入れることができ、うまく動作します。上記のように「temp」を使用するにはどうすればよいですか?

+2

エラーは何ですか?動作しないとどういう意味ですか? – kabanus

+0

あなたは多分それを画面の外に描いていますか? 'screen'のサイズは?このページを見てください:https://stackoverflow.com/help/mcve – skrx

+0

申し訳ありませんが、私の元のフォーマットは、よく言われていませんでした。 –

答えて

1

あなたが与えたコードは正しいと思われます。私はそれをテストし、三角形を表示します。コメント内のskrxで示唆されているように、あなたの画面サイズは小さすぎ、あなたはそれを見ることができません。

import pygame 

pygame.init() 
BLUE = (0, 0, 255) 
size = [1920, 1080] 
screen = pygame.display.set_mode(size) 
done = False 
clock = pygame.time.Clock() 

while not done: 
    clock.tick(10) 

    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      done = True 

    temp = (653, 333), (680, 444), (680, 444), (653, 445) 
    pygame.draw.polygon(screen, BLUE, temp, 0) 
    pygame.display.flip() 

pygame.quit() 
+0

努力をいただきありがとうございます、私は私の問題を非常にうまく指定しませんでした。なぜ私はdraw.polygon関数で 'temp'を使用すると、draw.polygon関数に 'temp'の内容を入れるだけの結果に違いがありますか? –

+0

'pygame.draw.polygon(screen、BLUE、[(653,333)、(680,444)、(680,444)、(653,445)]、0)'のように置くと、変わりはない。それらを '[]'で囲まなければ、それらを '.polygon'関数とは別の引数として扱います。その結果、動作が異なります。 – DobromirM

関連する問題