2017-02-23 19 views
-3

私はpygameでpiano_codeプログラムを作っています。私はすでにピアノの機能を作ったが、もう少し追加したい。マウスを左クリックすると、 "my_code"という名前の変数にキーボード入力を保存します。 ( ':\성빈\고등학교\과학전람회\ pygameのピアノの\ code_input.png E')pygame:キーボード入力を変数に保存できますか?

x=200 
y=400 


pygame.display.set_caption('Piano') 
pygame.mouse.set_visible(True) 
#pygame.mouse.set_visible(False) 
green_square= pygame.Surface(screen.get_size()) 
green_square.fill((0, 255, 0)) 
screen.blit(green_square, (0, 0)) 
Weeee = True 
pygame.draw.rect(screen, My_white_color, (30,100,100,200)) 
pygame.draw.rect(screen, My_white_color, (132,100,100,200)) 
pygame.draw.rect(screen, My_white_color, (234,100,100,200)) 
pygame.draw.rect(screen, My_white_color, (336,100,100,200)) 
pygame.draw.rect(screen, My_white_color, (438,100,100,200)) 
pygame.draw.rect(screen, My_white_color, (540,100,100,200)) 
pygame.draw.rect(screen, My_white_color, (642,100,100,200)) 
pygame.draw.rect(screen, My_black_color, (81,50,100,200)) 
pygame.draw.rect(screen, My_black_color, (183,50,100,200)) 
pygame.draw.rect(screen, My_black_color, (387,50,100,200)) 
pygame.draw.rect(screen, My_black_color, (489,50,100,200)) 
pygame.draw.rect(screen, My_black_color, (591,50,100,200)) 
b=screen.blit(myImg, (x,y)) 
pygame.display.flip() 

while Weeee : 



    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
     pygame.quit() 
     if event.type == pygame.KEYDOWN: 
      if event.key == pygame.K_a: 
       print("C") 
       pygame.mixer.music.load('E:\성빈\고등학교\과학전람회\pygame piano\pygame piano\sound1.mp3') 
       pygame.mixer.music.play(1,0) 
      if event.key == pygame.K_s: 
       print("D") 
       pygame.mixer.music.load('E:\성빈\고등학교\과학전람회\pygame piano\pygame piano\sound2.mp3') 
      pygame.mixer.music.play(1,0) 
      if event.key == pygame.K_d: 
       print("E") 
       pygame.mixer.music.load('E:\성빈\고등학교\과학전람회\pygame piano\pygame piano\sound3.mp3') 
      pygame.mixer.music.play(1,0) 
      if event.key == pygame.K_f: 
       print("F") 
       pygame.mixer.music.load('E:\성빈\고등학교\과학전람회\pygame piano\pygame piano\sound4.mp3') 
      pygame.mixer.music.play(1,0) 
      if event.key == pygame.K_g: 
       print("G") 
       pygame.mixer.music.load('E:\성빈\고등학교\과학전람회\pygame piano\pygame piano\sound5.mp3') 
      pygame.mixer.music.play(1,0) 
      if event.key == pygame.K_h: 
       print("A") 
       pygame.mixer.music.load('E:\성빈\고등학교\과학전람회\pygame piano\pygame piano\sound6.mp3') 
      pygame.mixer.music.play(1,0) 
      if event.key == pygame.K_j: 
       print("B") 
       pygame.mixer.music.load('E:\성빈\고등학교\과학전람회\pygame  piano\pygame piano\sound7.mp3') 
       pygame.mixer.music.play(1,0) 



     if event.type == MOUSEBUTTONDOWN : 
      if event.button==1 : 
       print("Setting Code") 
       my_code=pygame.key.get_pressed() 
       print("My code is" + str(my_code)) 



      if event.button == 3 : 
       print("Type your Code") 
       code_try=pygame.key.get_pressed() 
       if code_try==my_code : 
        print("Done") 
       else : 
         print("You've typed wrong code") 

しかし、それは

import os, sys 
import random 
import pygame 
from pygame.locals import * 


My_red_color = (255, 0, 0) 
My_blue_color = (0, 0, 255) 
My_green_color = (0, 255, 0) 
My_yellow_color = (255, 255, 0) 
My_black_color = (0,0,0) 
My_white_color = (255,255,255) 

pygame.init() 
APPLICATION_x_size = 800 
APPLICATION_y_size = 800 
screen = pygame.display.set_mode((APPLICATION_x_size, APPLICATION_y_size)) 

myImg = pygame.image.loadを動作しません。

どうすればよいですか? ありがとうございます。

+4

画像を貼り付けるのではなく、直接問題のコードを貼り付けた方が便利です – Simon

+0

左クリックしたときに何かキーを押していますか? –

+0

@PeterWood全くありません –

答えて

0

私がここでやろうとしているのは、マウスの左ボタンをクリックすると、変数に押されたすべてのキーを保存することです。私の理解では、キーの押された履歴を与えることができるPygameの機能はありません。これは非常に単純な問題です。各ノートのifステートメントでは、ノートを配列に追加するだけです。左クリックすると、配列をmy_codeに保存するか、出力することができます。

pygame.key.get_pressed()はあなたが混乱していると思います。これは、呼び出された瞬間にキーボードの状態のスナップショットを返します。これは、現時点でどのキーが押されているかに基づいて反転された単なるブール値の配列です。それはキーを押す履歴ではありません。

関連する問題