【问题标题】:Pygame, I want to make it play the soundPygame,我想让它播放声音
【发布时间】:2019-05-03 17:19:50
【问题描述】:

如何使这项工作。我希望它在矩形穿过屏幕中心时播放音频。

import pygame
from pygame import*

pygame.init()
mixer.init()

win=pygame.display.set_mode((600,00))
pygame.display.set_caption("bla")

x=20
y=20

width=10
height=10

run=True
while run:
    pygame.time.delay(10)

    for event in pygame.event.get():
        if event == pygame.QUIT:
            run= False


    keys = pygame.key.get_pressed()

    if keys [pygame.K_LEFT] :
        x-=4
    if keys [pygame.K_RIGHT]:
        x+=4
    if keys [pygame.K_UP]:
        y-=4
    if keys [pygame.K_DOWN]:
        y+=4

    if 350 < x < 450 and 350 < y < 450:
        mixer.music.load('music.wav')
        mixer.music.play(0)




    win.fill((0,0,0))
    pygame.draw.circle(win,(255,0,0),(300,300),(10))
    pygame.draw.rect(win,(255,0,0),(x,y,width,height))
    pygame.display.update()

我希望当矩形穿过窗口中心时会播放声音。但是什么也没发生

【问题讨论】:

    标签: python pygame


    【解决方案1】:

    首先,你有一个错字:

    win=pygame.display.set_mode((600,00))
    #                                ^^^^
    

    我猜应该是:

    win=pygame.display.set_mode((600,600))
    

    为了测试你的代码,你可以添加一个灰色的矩形区域来显示光标应该进入的位置以开始播放音乐,这样你就可以确定你必须将光标放在哪里。

    win.fill((0,0,0))
    pygame.draw.rect(win, (100, 100, 100), (350, 350, 100, 100)) #this is the rectagle where the music starts
    pygame.draw.circle(win,(255,0,0),(300,300),(10))
    pygame.draw.rect(win,(255,0,0),(x,y,width,height))
    pygame.display.update()
    

    实际上并不是真正在屏幕的中心,所以可能需要调整坐标。将 x 和 y 减少 100 以使其在 600x600 屏幕中居中。

    还要注意,在光标停留在该区域之前,您不会听到任何声音,因为实际上您每次迭代都开始播放音乐。每次迭代都会倒带音乐。
    但是,当您退出该区域时,它将开始。要让它在您进入广场时开始播放,请检查音乐是否已经在播放,并且只有在没有播放任何内容时才开始播放:

    if 350 < x < 450 and 350 < y < 450:
        if not mixer.music.get_busy():
            mixer.music.load('music.wav')
            mixer.music.play(0)
    

    pygame.mixer.music.get_busy() 检查音乐是否正在播放。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-03
      • 2011-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多