2013-03-20 120 views
1

目前只是嘗試pygame,我創建了一個白色背景,只是一個圖像的窗口。我希望能夠使用箭頭鍵(正常工作)以及按下箭頭鍵時移動圖像,我想要播放引擎聲音mp3。這是我目前得到的代碼:pygame按鍵上的聲音

image_to_move = "dodge.jpg" 

    import pygame 
    from pygame.locals import * 

    pygame.init() 
    pygame.display.set_caption("Drive the car") 
    screen = pygame.display.set_mode((800, 800), 0, 32) 
    background = pygame.image.load(image_to_move).convert() 

    pygame.init() 

    sound = pygame.mixer.music.load("dodgeSound.mp3") 

    x, y = 0, 0 
    move_x, move_y = 0, 0 


    while True: 

     for event in pygame.event.get(): 
      if event.type == QUIT: 
       pygame.quit() 
       break 

      #Changes the moving variables only when the key is being pressed 
      if event.type == KEYDOWN: 
       pygame.mixer.music.play() 
       if event.key == K_LEFT: 
        move_x = -2 
       if event.key == K_RIGHT: 
        move_x = 2 
       if event.key == K_DOWN: 
        move_y = 2 
       if event.key == K_UP: 
        move_y = -2 


      #Stops moving the image once the key isn't being pressed 
      elif event.type == KEYUP: 
       pygame.mixer.music.stop() 
       if event.key == K_LEFT: 
        move_x = 0 
       if event.key == K_RIGHT: 
        move_x = 0 
       if event.key == K_DOWN: 
        move_y = 0 
       if event.key == K_UP: 
        move_y = 0 

     x+= move_x 
     y+= move_y 

     screen.fill((255, 255, 255)) 
     screen.blit(background, (x, y)) 

     pygame.display.update() 

圖像將加載很好,我可以在任何

+1

你的if語句*任何*鍵(不只是那些4),被釋放停止聲音。 – ninMonkey 2013-03-20 05:43:32

+0

所以我需要使用4個鍵的每個子if語句下的pygame.mixer.music.stop()? – 2013-03-20 12:44:26

回答

3

在屏幕上移動,但沒有任何聲音的那一刻,你的腳本將停止沒有按任何鍵時發出聲音。將.stop()命令放入所使用的鍵的特定鍵事件中應該可以解決這個問題。

另外,除了播放聲音:

pygame.mixer.music.play() 

爲你所做的一切,播放聲音,你已經賦值的變量:

sound = pygame.mixer.music.load("dodgeSound.mp3") 



if event.type == KEYDOWN: 

      sound.play() 

另外,使用指定的聲音文件:

sound = pygame.mixer.Sound("dodgeSound.mp3") 

pygame soundfiles的更多示例如下所示:

http://www.stuartaxon.com/2008/02/24/playing-a-sound-in-pygame/

http://www.pygame.org/docs/ref/mixer.html