当前位置: 首页 > 知识库问答 >
问题:

Windows/Python游戏。错误:添加Mp3文件后未初始化视频系统

轩辕煜
2023-03-14

我刚刚在我的pygame游戏中添加了一些音乐,但我认为代码太乱了,没有任何东西放在正确的位置。由于此添加,我现在得到以下错误:

回溯(最近一次调用):文件“C:\Users\1234\AppData\Local\Programs\Python\Python36-32\My First game ERROR.py”,第31行,用于pygame中的事件。事件get():pygame。错误:视频系统未初始化

下面是我写的代码:

import pygame, sys

pygame.mixer.init(44100, -16,2,2048)

class Game(object):
def main(self, screen):

    import time
pygame.mixer.music.load('The Tonight Show Star Wars The Bee Gees Stayin     Alive Shortened.mp3')
pygame.mixer.music.play(-1, 0.0)

#class Player(pygame.sprite.Sprite):
   # def __init__(self, *groups):
   # super(Player, self.__init__(*groups)
    #self.image = pygame.image.load('Sprite-01.png')
   # self.rect = pygame.rect.Rect((320, 240), self.image.get_size())

    #def update(self):
       # key = pygame

image = pygame.image.load('Sprite-01.png')

clock = pygame.time.Clock()
# initialize variables
image_x = 0
image_y = 0

while 1:
clock.tick(30)     
for event in pygame.event.get():
    if event.type == pygame.quit():
        pygame.quit()
    if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
        pygame.quit()

image_x += 0
key = pygame.key.get_pressed()
if key[pygame.K_LEFT]:
    image_x -= 10
if key[pygame.K_RIGHT]:
    image_x += 10
if key[pygame.K_UP]:
    image_y -= 10
if key[pygame.K_DOWN]:
    image_y += 10

screen.fill((200, 200, 200))
screen.blit(image, (image_x, image_y))
pygame.display.flip()

pygame.mixer.music.stop(52)


if __name__ == '__main__':
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption('St.Patrick game')
Game().main(screen)

共有2个答案

扈德容
2023-03-14

我认为问题在于您没有初始化pygame模块。

在使用pygame库中的任何内容之前,所有pygame脚本都必须调用init函数。

在您的代码中,有一行pygame。包含init()。但是,该行位于错误的位置,并且在该行之前存在使用pygame库的代码。

幸运的是,这个问题很容易解决。

要解决此问题,请执行以下操作:

  • 在脚本的开头添加一行pygame.init()

我希望这个答案对你有所帮助,如果你还有任何疑问,请随时在下面发表评论!

岳鸿畴
2023-03-14

我发现了问题所在。你检查如果event.type==pygame.quit():在事件循环中,而你应该检查如果event.type==pyplay。退出:。这意味着第一次执行事件循环时,您在这一行中调用pygame.quit()并取消所有模块的初始化,因此您不能再使用许多pyplay函数,并且引发了pygame.error

我认为你实际上希望你的程序看起来更像这个版本:

import pygame


pygame.mixer.init(44100, -16,2,2048)


class Player(pygame.sprite.Sprite):

    def __init__(self, *groups):
        super(Player, self.__init__(*groups))
        self.image = pygame.image.load('Sprite-01.png')
        self.rect = pygame.rect.Rect((320, 240), self.image.get_size())


class Game(object):

    def main(self, screen):
        # pygame.mixer.music.load('The Tonight Show Star Wars The Bee Gees Stayin     Alive Shortened.mp3')
        # pygame.mixer.music.play(-1, 0.0)

        # image = pygame.image.load('Sprite-01.png')
        image = pygame.Surface((30, 50))
        image.fill((0, 90, 240))

        clock = pygame.time.Clock()
        # initialize variables
        image_x = 0
        image_y = 0

        done = False
        while not done:
            clock.tick(30)
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    done = True
                if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
                    done = True

            key = pygame.key.get_pressed()
            if key[pygame.K_LEFT]:
                image_x -= 10
            if key[pygame.K_RIGHT]:
                image_x += 10
            if key[pygame.K_UP]:
                image_y -= 10
            if key[pygame.K_DOWN]:
                image_y += 10

            screen.fill((200, 200, 200))
            screen.blit(image, (image_x, image_y))
            pygame.display.flip()

            # pygame.mixer.music.stop(52)


if __name__ == '__main__':
    pygame.init()
    screen = pygame.display.set_mode((640, 480))
    pygame.display.set_caption('St.Patrick game')
    Game().main(screen)
    pygame.quit()
 类似资料:
  • 我正试图在谷歌地图Android API v2中获得一个带有自定义图标的标记。我刚刚更改了Google提供的一个示例。我添加了到方法中的RawMapViewDemoActivity 但我总是得到一个“IBitmapDescriptorFactory未初始化”。 在BitmapDescriptorFactory中,它说: 在使用此类中的任何方法之前,您必须执行以下操作之一以确保初始化此类: > 等待

  • 我正在尝试将MP3音频文件混合到MP4视频中。经过数小时的搜索,我得出结论,我需要将MP3文件转换为AAC格式,该格式适合MP4容器。 在android中为视频添加音频 但是我找不到任何关于如何将MP3文件转换为AAC格式的留档。那么你对如何将MP3音频转换为AAC音频有什么建议吗? 此外,我还需要在最终视频中的特定时间插入几段音频。

  • 我知道这类问题已经被问过很多次了。但是我非常努力地搜索,并尝试了各种建议,但没有一个奏效。这类东西真的不在我的驾驶室里,我不知道我在做什么。 疯狂的是,我昨天实际上已经做了这项工作,今天我发誓我没有改变任何东西,突然间它不起作用了。 我正在运行“xming服务器”,我相信它应该允许X11在Windows中工作(昨天确实如此!)。 这是我的代码(从教程中复制并粘贴): 输出: pygame 1.9.

  • function frameInitialized(); 执行完frameInitialize事件后,框架开始检查并处理运行环境,在执行frameInitialized事件时,框架已经完成的工作有: frameInitialize事件 系统运行目录的检查与创建 运行目录的检查与创建包括了以下工作: 在ROOT目录下创建临时目录Temp 在Temp目录下创建会话存放目录Session 在Temp目录

  • 问题内容: 我的Java程序中出现以下错误: Java变量未初始化错误…错误:变量nam和r未初始化位置类子级 但是并且已经初始化,但是我仍然遇到相同的错误。 问题答案: 不要获取 默认值 ,应在使用它们之前对其进行初始化,并使用main中的默认值进行初始化,这样就可以了。 顺便说一句,考虑为您的类和变量命名是有意义的。

  • 我有以下Java代码: 但是,当我运行它时,它会抛出以下错误: 我在do之前初始化了变量。while 循环,并在 try. 中设置值。捕获循环。似乎尚未设置该变量。抱歉,如果这是一个相当基本的问题,但我似乎无法弄清楚。