web-dev-qa-db-ja.com

pygame.error:ビデオシステムが初期化されていません

そのため、pygameコードを実行しようとすると次のエラーが発生します:pygame.error:ビデオシステムが初期化されていません

翼がどこにあるかを指定しますIDEは、以下のコードのどこにあるかを教えてくれます

import os
import sys
import math
import pygame
import pygame.mixer
from pygame.locals import *

black = 0,0,0
white = 255,255,255
red = 255,0,0
green = 0,255,0
blue = 0,0,255

screen = screen_width, screen_height = 600, 400

clock = pygame.time.Clock()

pygame.display.set_caption("Physics")

fps_cap = 120
running = True
while running:
    clock.tick(fps_cap)

    for event in pygame.event.get(): #error is here
        if event.type == pygame.QUIT:
            running = False

    screen.fill(white)

    pygame.display.flip()

pygame.quit()
sys.exit    
#!/usr/bin/env python
5
Badfitz66

pygame.init() どこにも電話をかけていません。

基本的なイントロチュートリアル 、または特定の インポートと初期化 チュートリアルを参照してください。

Pygameで多くのことを行う前に、それを初期化する必要があります。これを行う最も一般的な方法は、1回の呼び出しです。

pygame.init()

これにより、すべてのpygameモジュールが初期化されます。すべてのpygameモジュールを初期化する必要はありませんが、これにより自動的に初期化されます。また、手動で各pygameモジュールを簡単に初期化することもできます。たとえば、呼び出すフォントモジュールのみを初期化します。

あなたの特定のケースでは、おそらく pygame.display は、最初にflipを呼び出さずに、そのset_captionまたはinitのいずれかを呼び出したことを訴えています。しかし、実際には、チュートリアルが言うように、何を初期化する必要があるのか​​を正確に把握するよりも、すべてを先頭にあるinitにした方がよいでしょう。

11
abarnert

set_caption()を使用して)ウィンドウのタイトルを設定しようとするとエラーが発生しますが、pygameウィンドウを作成していないため、screen変数は、将来のウィンドウ。

Pygameウィンドウを作成するには、pygame.display.set_mode(windowSize)を呼び出す必要があります。

幸運を :)

1
Julien Dubois

1この問題は、ベータ版を使用している場合に発生します。

2なので、私の提案は、新旧バージョンを使用してください(3.8 Pythonをランチする場合は、python 3.7)をインストールする必要があります)

3ここで、goto python terminal and install pygame(pip install pygame)

4これで問題は解決しました...

0
Rajendro Sau

追加する必要があります:

pygame.init()

表示を終了する前に、whileループを停止する必要があります。

0
sand24ro
  1. 'pygame.init()'を実行している場合は、初期化されたビデオシステムの問題を解決します。 (AttributeError: 'Tuple' object has no attribute 'fill')thisのような次のエラーが表示されます。

  2. この問題は、「screen = pygame.display.set_mode((600,400))」を実行しているが、「screen = screen_width、screen_height = 600、400」のように実行していない場合に解決されます。

  3. その後、完全な問題が解決されます。

0
Rajendro Sau