2011-12-08 6 views
1

私はpygameで非常に基本的なことをやろうとしています。私は初心者ですので、それを使用して私の最初の数日間です。私はマウスで押すたびに色を変えようとしています。タイミングを見ながら色を変更する方法を知っていますが、これは私が下に自分のコードを持っているものです。下のコードでクラウドの色を変更しようとしています。実行すると、クラウドが左上に表示され、3秒ごとに白と黒の間で変化しますが、マウスボタンダウンに基づいて変更します。おかげpygameでMOUSEBUTTONDOWNを使用

import pygame, time, sys 
from pygame.locals import * 

def drawItem(windowSurface, x, y): 
    pygame.draw.polygon(windowSurface, RED, ((0+x, 100+y),(100+x, 100+y), (50+x, 50+y))) 
    pygame.draw.polygon(windowSurface, GREEN, ((0+x,100+y),(100+x,100+y),(100+x,200+y),(0+x,200+y))) 


pygame.init() 

windowSurface = pygame.display.set_mode((500, 400), 0, 32) 
pygame.display.set_caption("Lab 9") 

BLACK = (0, 0, 0) 
WHITE = (255, 255, 255) 
RED = (255, 0, 0) 
GREEN = (0, 255, 0) 
GRASS = (26, 82, 26) 
SKY = (179,237,255) 

color = SKY 
flag = False 

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

    windowSurface.fill(SKY) 

    drawItem(windowSurface,200,120) 
    pygame.draw.rect(windowSurface, GRASS, (0,300,500,500),0) 

    house = ((0+50, 100+50),(100+50, 100+50), (50+50, 50+50), (50+100, 50+100)) 

    for i in range(3): 
     pygame.draw.circle(windowSurface,color, house[i], 80) 

    if flag == False: 
     color = WHITE 
     flag = True 
    elif flag == True: 
     color = BLACK 
     flag = False 

    pygame.display.update() 
    time.sleep(3) 
+1

あなたはその時点でそれを試していますが、リストやタプルの長さを反復して使うのが良い習慣です。したがって、 'range(3)'ではなく、 'range(len(house)) 'を使うべきです。これは' house'の全ての項目を繰り返します。したがって、アイテムを追加する場合は、最初の3つではなく、すべてのアイテムをループします。 – Smashery

+0

これは慣れようとします。アドバイスをいただきありがとうございます! – Neemaximo

答えて

1

あなたは既に(event.type == QUITかどうかをチェックする)イベントの種類をテストする方法を発見しました。

これを拡張して、マウスボタンのクリックかどうかを確認できます。あなたのfor event in pygame.event.get()ループでこれをスティック:

if event.type == MOUSEBUTTONDOWN: 
    flag = not flag # This will swap the value of the flag 

その後、あなたは、もはやそれを必要としないので、以下flag = Trueflag = Falseラインを取り除きます。また、time.sleep()呼び出しを取り除きます。少なくとも合理的なフレームレート(time.sleep(0.2) = 50フレーム/秒)に変更してください。

+0

イベントやさまざまな種類のドキュメントについては、こちらをご覧ください:http://pygame.org/docs/ref/event.html – Smashery

+0

助けてくれてありがとうございます – Neemaximo

関連する問題