質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Pygame

Pygameは、ビデオゲームの製作用に設計されたクロスプラットフォームのPythonモジュールセットです。Pythonでコンピューターグラフィックスと音声を扱うためのライブラリが含まれています。

受付中

Pygameでビデオエラーが出てゲームが起動しない

ryuuabis
ryuuabis

総合スコア24

Pygame

Pygameは、ビデオゲームの製作用に設計されたクロスプラットフォームのPythonモジュールセットです。Pythonでコンピューターグラフィックスと音声を扱うためのライブラリが含まれています。

1回答

0リアクション

0クリップ

283閲覧

投稿2022/02/28 11:31

編集2022/02/28 12:03

前提・実現したいこと

Pygameのソースコードで、ビデオシステムのエラーが出ます。
MacBook ProでVSCODEを使ってパイソンファイルを書いてます。

VSCODEの右上の矢印マークでファイルを実行しても何も起きない状態です。

コードはテキストのKindleをそのままコピーしてるので誤字はありません。
それと、blitとxposに波線エラーで値がないと出てしまいます。

原因がわかる方いますでしょうか?
ちなみに、Pygame自体のサンプルのエイリアンゲームや、他の自作のファイルはできました。

*追記
VSCODEのデバックモードで実行するとウィンドウが出るようになったのですが最初の方で止まってしまいます。
普通のモードで実行するとやっぱりビデオエラーが出てしまいます。。

発生している問題・エラーメッセージ

pygame.error: video system not initialized blit (constant) SURFACE: Surface "blit": Unknown word.c xpos (variable) xpos: int "xpos": Unknown word.

該当のソースコード

"""caveCopyright2016KenichiroTanaka""" import sys from random import randint import pygame from pygame.locals import QUIT, Rect, KEYDOWN, K_SPACE pygame.init() pygame.key.set_repeat(5,5) SURFACE = pygame.display.set_mode((800,600)) FPSCLOCK = pygame.time.Clock() def main(): walls = 80 ship_y = 250 velocity = 0 score = 0 slope = randint(1,6) sysfont = pygame.font.SysFont(None,36) ship_image = pygame.image.load("ship.png") bang_image = pygame.image.load("bang.png") holes=[] for xpos in range(walls): holes.append(Rect(xpos * 10,100,10,400)) game_over = False while True: is_space_down = False for event in pygame.event.get(): if event.type==QUIT: pygame.quit() sys.exit() elif event.type == KEYDOWN: if event.key==K_SPACE: is_space_down = True #自機を移動 if not game_over: score += 10 velocity += -3 if is_space_down else 3 ship_y += velocity #洞窟をスクロール edge = holes[1].copy() test = edge.move(0,slope) if test.top <= 0 or test.bottom >= 600: slope = randint(1, 6) * (-1 if slope > 0 else 1) edge.inflate_ip(0,20) edge.move_ip(10,slope) holes.append(edge) del holes[0] holes = [x.move(10,0)for x in holes] #衝突? if holes[0].top > ship_y or \ holes[0].bottom < ship_y + 80: game_over = True #描画 SURFACE.fill((0,255,0)) for hole in holes: pygame.draw.rect(SURFACE,(0,0,0),hole) SURFACE.blit(ship_image,(0,ship_y)) score_image = sysfont.render("score is {}".format(score), True,(0,0,225)) SURFACE.blit(score_image,(600,20)) if game_over: SURFACE.blit(bang_image, (0, ship_y-40)) pygame.display.update() FPSCLOCK.tick(15) if __name__ == '__main__': main()

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Pygame

Pygameは、ビデオゲームの製作用に設計されたクロスプラットフォームのPythonモジュールセットです。Pythonでコンピューターグラフィックスと音声を扱うためのライブラリが含まれています。