私は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)
あなたはその時点でそれを試していますが、リストやタプルの長さを反復して使うのが良い習慣です。したがって、 'range(3)'ではなく、 'range(len(house)) 'を使うべきです。これは' house'の全ての項目を繰り返します。したがって、アイテムを追加する場合は、最初の3つではなく、すべてのアイテムをループします。 – Smashery
これは慣れようとします。アドバイスをいただきありがとうございます! – Neemaximo