前提・実現したいこと
プログラム初心者です。
pygameでキー入力で効果音を鳴らすためのプログラムを組みました。以下のことを実現させるためにどのようにコードを変えればいいか教えていただきたいです。
---実現したいこと---
・音はドンとカの2種類の音を鳴らし、ドンはf,jキー、カはd,kキーに対応させます。
・ドンの同時押し、カの同時押し、ドンとカの同時押し、に対応させたいです。
・キーボードを連打しても押した毎に音が鳴るようにしたいです。
発生している問題
・キーボードを押してから0.2~0.3秒ほどのラグができてしまいます。
・ドンとカに対応するキーを押した状態で他のキーを押すと音が鳴ってしまいます。
・キーボードを連打しても押した毎に音が鳴りません。
該当のソースコード
python
1import pygame 2import pygame.mixer 3import sys 4 5pygame.init() 6pygame.mixer.init() 7 8se_dong = pygame.mixer.Sound("dong.wav") 9se_ka = pygame.mixer.Sound("ka.wav") 10 11def main(): 12 13 pygame.display.set_caption("Pygame_SE") 14 screen = pygame.display.set_mode((960, 720)) 15 clock = pygame.time.Clock() 16 17 18 19 while True: 20 21 for event in pygame.event.get(): 22 if event.type == pygame.QUIT: 23 pygame.quit() 24 sys.exit() 25 26 screen.fill([0, 0, 0]) 27 28 pygame.event.pump() 29 key = pygame.key.get_pressed() 30 if key[pygame.K_f] or key[pygame.K_j] == 1: 31 print("ドン") 32 se_dong.play() 33 if key[pygame.K_d] or key[pygame.K_k] == 1: 34 print("カ") 35 se_ka.play() 36 37 pygame.display.update() 38 clock.tick(60) 39 40if __name__ == "__main__": 41 main()
試したこと
仮説ですが、ドン、カを押してるときに別のキーを押すと音が鳴ってしまう。というのはpygame.key.get_pressed()はキーボード入力が更新されるたびにその時の状態を出力しているからでしょうか。
回答2件
あなたの回答
tips
プレビュー