【问题标题】:How do you continuously play a note in Pygame?你如何在 Pygame 中连续演奏一个音符?
【发布时间】:2017-03-13 04:19:28
【问题描述】:

Python 2.7

我试图在 pygame 中创建一个类似钢琴的东西,当按下一个键时会播放一个音符。我的问题是我无法弄清楚如何在按住键时让音符永远播放。我试图做一个while循环,但我不知道如何离开它。

import pygame

pygame.mixer.pre_init(44100, -16, 2, 2048)
pygame.init()
size = width, height = 800, 400
screen = pygame.display.set_mode((size))

while 1:
    for event in pygame.event.get():
            if event.type == pygame.QUIT:
                exit()
            if event.type == pygame.KEYDOWN:
                if event.type == pygame.KEYUP:
                    break
                elif event.key == pygame.K_i:
                    pygame.mixer.music.load('file.wav') #A
                    pygame.mixer.music.play()

                elif event.key == pygame.K_o:
                    pygame.mixer.Sound('file.wav').play() #B

                elif event.key == pygame.K_e:
                    pygame.mixer.Sound('file.wav').play() #C

                elif event.key == pygame.K_r:
                    pygame.mixer.Sound('file.wav').play() #D

                elif event.key == pygame.K_t:
                    pygame.mixer.Sound('file.wav').play() #E

                elif event.key == pygame.K_y:
                    pygame.mixer.Sound('file.wav').play() #F

                elif event.key == pygame.K_u:
                    pygame.mixer.Sound('file.wav').play() #G

【问题讨论】:

    标签: python python-2.7 pygame


    【解决方案1】:
    while running:
        keys = pygame.key.get_pressed()  #checking pressed keys
        if keys[pygame.K_UP]:
           pygame.mixer.Sound('file.wav').stop()
        if keys[pygame.K_DOWN]:
           pygame.mixer.Sound('file.wav').play()
    

    当一个键被按下时它会继续播放那个键但是当它不再被按下时它会停止。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-03
      • 1970-01-01
      • 2011-01-13
      相关资源
      最近更新 更多