繁体   English   中英

我需要帮助在 Replit(Pygame) 上播放声音

[英]I need help playing sound on Replit(Pygame)

因此,我正在 Pygame 上制作游戏,并且我已经观看了有关如何使用 Pygame 获得声音的教程,但由于某种原因,无论我做什么,它都无法播放。 我在 Replit,我曾尝试使用 Replit 库,但我也遇到了问题。 我想知道我是不是写错了什么,或者它只是Replit还是它是什么。 另外,如果您对循环有任何提示,以及如何在特定时间播放音乐,那就太好了。 下面的代码只是一个小代码,试图弄清楚如何制作菜单,当我 select 一个颜色时,我打算让音乐播放。 我刚刚尝试删除

pygame.init() 

但是当我这样做时,一大堆东西就不再起作用了,例如 fonts 并且它还说混音器没有初始化。

import pygame
import random
import time

pygame.init() 

font = pygame.font.SysFont("arial", 15, True)

compwin = pygame.display.set_mode((512,512))

pygame.display.set_caption("attack")

clock = pygame.time.Clock()
music = pygame.mixer.music.load("space music.wav")
pygame.mixer.music.play(-1)
 
x1 = 128
y1 = 256
x2 = 256
y2 = 256
x3 = 384
y3 = 256
x4 = 251
y4 = 251
def picked():
  while run:
    pygame.time.delay(30)
    for event in pygame.event.get():
      if event.type == pygame.QUIT:
        run == False
    if white.colliderect(red):
      compwin.fill((255,0,0))
    if white.colliderect(green):
      compwin.fill((0,255,0))
    if white.colliderect(blue):
      compwin.fill((0,0,255))
      
    pygame.display.update()
    
run = True

while run:
  
  pygame.time.delay(30)
  for event in pygame.event.get():
    if event.type == pygame.QUIT:
      run = False
 
  keys = pygame.key.get_pressed()
  if keys[pygame.K_1]:
    x4 = x1 - 5
    y4 = y1 - 5
    
  elif keys[pygame.K_2]:
    x4 = x2 - 5
    y4 = y2 - 5
  elif keys[pygame.K_3]:
    x4 = x3 - 5
    y4 = y3 - 5
  compwin.fill((0,0,0))
  
  white = pygame.draw.rect(compwin,(255,255,255), (x4,y4,42,42) )
  blue = pygame.draw.rect(compwin,(0,0,255), (x2,y2,32,32) )
  green = pygame.draw.rect(compwin,(0,255,0), (x3,y3,32,32) )
  red = pygame.draw.rect(compwin,(255,0,0), (x1,y1,32,32) )
  
  keys = pygame.key.get_pressed()
  if keys[pygame.K_RETURN]:
    picked()

  pygame.display.update()
    
pygame.quit()

您无法在repl上播放pygame中的音乐(据我所知),因为repl在虚拟机上运行。 显然,这个功能是有计划的,会及时添加。 现在,我想说在不同的 IDE 上运行您的代码,这应该可以。

您还应该看看这个: https://docs.replit.com/misc/playing-audio-replit#playing-audio-on-replit

对于循环音频,您需要传递-1pygame.mixer.music.play(loops = -1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM