0
一度四角形をクリックすると、「あなたは胸を開けました!」という文章が印刷されます。何回も調整したり追加したりすることができます。私はこの文を繰り返すことを止めたいと思っています
import pygame
pygame.init()
pygame.display.set_caption('Crash!')
window = pygame.display.set_mode((300, 300))
running = True
#Draw Once
Rectplace = pygame.draw.rect(window, (255, 0, 0),(100, 100, 100, 100))
pygame.display.update()
#Main Loop
while running:
#mouse position and button clicking
pos = pygame.mouse.get_pos()
(pressed1,pressed2,pressed3) = pygame.mouse.get_pressed()
#if statement
if Rectplace.collidepoint(pos) and pressed1 == 1:
print("You have opened a chest!")
#Quit pygame
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.quit()
調整コードも教えてください。それは高く評価されるでしょう。前もって感謝します!
、右の印刷行の後に、0にpressed1の値を変更してみてください。代わりにそれを確認してみてください。 – domsson
私はある種のラッチを提案します。あなたは胸の配列を持っていて、各胸にはその座標と内容だけでなく、開いているかどうかもわかります。 Rectplace.collidepoint(pos)とpressed1 == 1、chest.opened == Falseの場合: – Gauthier
ループで 'pygame.mouse.get_pressed()'を使用していることに気付きました。これは、マウスのボタンを押さえている限り、あなたの 'if'と' print() 'が何度も何度もトリガされることを意味します。より良いアプローチは、ある種の 'button_released'イベントが存在するかどうかをチェックすることです。そうでない場合は、自分で行うことができます。マウスボタンが押された場合はブール値を設定します。もう押さないと、ボタンが離されたことがわかります。 – domsson