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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1975閲覧

Pygameでの画像の表示

pussy_pussy

総合スコア22

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/07/09 09:21

前提・実現したいこと

VScodeでpygameをインポートして出力結果に画像を表示させたい

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

ターミナルにはエラーメッセージは出ていないが、実行されると表示されるwindowにおいて画像が表示されないのと、毎回応答なしとなる

該当のソースコード

python

1import pygame 2from pygame.locals import * 3import sys 4 5def main(): 6 #pygame.init() 7 #pygameの初期化 8 screen = pygame.display.set_mode((900,500)) 9 #画面の生成 10 pygame.display.set_caption("Test") 11 12 player = pygame.image.load("円.jpg").convert_alpha() 13 rect_player = player.get_rect() 14 rect_player.center = (100, 400) #初期位置 15 16 while(True): 17 screen.fill((100,100,100)) 18 #画面をグレーに塗りつぶし 19 pygame.draw.line(screen, (0,0,0), (0,400), (1000,400), 3) 20 # (0,400)から(400,1000)まで線幅3pxで白色(R=0, G=0, B=0)の直線を描 21 pygame.display.update() 22 #画面を更新 23 screen.blit(player, rect_player) 24 25 26if __name__ == "__main__": 27 main() 28 29 30

試したこと

コードファイルがあるディレクトリに表示させたい画像が入っているかどうか確認をして、それが入っていることを確認した。VScode側にも、jpgのファイル(?)が生成されていたので画像は確かに読み込まれている(はず)

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

これはキーボードの入力のプログラムがないので割り込みができず、固まってしまいます。

python

1for event in pygame.event.get(): 2 if event.type == QUIT: # 終了イベント 3 running = False 4 pygame.quit() #pygameのウィンドウを閉じる 5 sys.exit() #システム終了

これを入れると割り込みができます。
これでもできない場合はまた教えてください。(ファイル名等は適切に置き換えてください)

追記

以下のプログラム(最小プログラム)実行してみてください(以下のサイトを参考)
https://shizenkarasuzon.hatenablog.com/entry/2019/02/23/151418

python

1from pygame.locals import * 2import pygame 3import sys 4 5def main(): 6 pygame.init() # Pygameを初期化 7 screen = pygame.display.set_mode((400, 330)) # 画面を作成 8 pygame.display.set_caption("Pygame sample app") # タイトルを作成 9 10 running = True 11 #メインループ 12 while running: 13 screen.fill((0,0,0)) #画面を黒で塗りつぶす 14 15 # 画像を描画 16 #--------------- 1.画像を読み込む -------------------------- 17 18 #一部の色を透明にする 19 img = pygame.image.load("test.jpg").convert() 20 colorkey = img.get_at((0,0)) 21 img.set_colorkey(colorkey, RLEACCEL) 22 23 #--------------- 2.画像を表示 -------------------------- 24 screen.blit(img, (0,0)) 25 26 pygame.display.update() #描画処理を実行 27 for event in pygame.event.get(): 28 if event.type == QUIT: # 終了イベント 29 running = False 30 pygame.quit() #pygameのウィンドウを閉じる 31 sys.exit() #システム終了 32 33if __name__=="__main__": 34 main()

おまけ

ボタン等の割り込み(イベント処理)はfor event in pygame.event.get()内で行います。具体的な使い方等はpygame docsのkeyというところにあるのですが、(日本語翻訳版あり)こちらのサイトがわかりやすいかもです。
https://sodocumentation.net/ja/pygame/topic/5110/%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E5%87%A6%E7%90%86

投稿2020/07/09 09:38

編集2020/07/10 23:57
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pussy_pussy

2020/07/09 10:23

if __name__ == "__main__": main() のあとに提示していただいたコードを入れて実行しました。windowは出たのですがまだ固まってしまいました
退会済みユーザー

退会済みユーザー

2020/07/09 11:01

あ、違います。説明が悪くてすみません。 while Trueの一番最後に入れます。
pussy_pussy

2020/07/10 05:34

変なミスをしてすみません。 固まらないようにはなったのですが.jpgの画像が表示されないです
退会済みユーザー

退会済みユーザー

2020/07/10 23:49

少しプログラムを修正してみました。ご確認ください。
pussy_pussy

2020/07/11 05:21

ありがとうございます。画像を表示することが出来ました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問