前提・実現したいこと
pygameを使って画面の切り替えをしたいです。(http://aidiary.hatenablog.com/entry/20081012/1281193197)のサイトを見て必要だと思った部分だけ抜き出してコードを書いてみましたが、わからない点が3つあります。
一つ目はなぜ画面の切り替えができないのかということです。何が足りていないのか教えてほしいです。
二つ目はウィンドウを閉じようとしたときに必ずpythonは応答していませんというのがでてしまいます。何が足りていないのか教えてほしいです。
三つめはコードについてです。下にあるコードの五行目にfirst,second,third=(0,1,2)としたのですが、上記のサイトをみて書いたものでなぜこうなるのかわかりません。
具体的にはfirst,second,thirdは各画面のことを指すと思うのですが、それを012に置き換える意味が分かりません。何もしなければfirst is not defined的なエラーが出るのかもしれませんが、それにしてもなぜ数字なのかがわかりません。
以上三点もしよければ教えていただけると嬉しいです。
発生している問題・エラーメッセージ
エラーメッセージはありませんが、画面切り替えができず、またウィンドウを閉じようと×マークをクリックすると必ずpythonは応答していませんと出てきます。
None
該当のソースコード
python
1import pygame 2from pygame import * 3import sys 4 5first,second,third=(0,1,2) 6class Invader(): 7 def __init__(self): 8 pygame.init() 9 self.init_game() 10 11 def init_game(self): 12 self.game_state=first 13 screen=pygame.display.set_mode((1000,700)) 14 pygame.display.set_caption('a') 15 while(True): 16 pygame.display.update() 17 18 def draw(self,screen): 19 screen.fil((0,0,0)) 20 if self.game_state==first: 21 self.all.draw(screen) 22 self.key_handler() 23 24 elif self.game_state==second: 25 screen=pygame.display.set_mode((100,70)) 26 pygame.display.set_caption('b') 27 while(True): 28 pygame.display.update() 29 self.key_handler() 30 31 elif self.game_state==third: 32 screen=pygame.display.set_mode((500,350)) 33 pygame.display.set_caption('c') 34 while(True): 35 pygame.display.update() 36 self.key_handler() 37 def key_handler(self): 38 for event in pygame.event.get(): 39 if event.type==QUIT: 40 pygame.quit() 41 sys.exit() 42 elif event.type==KEYDOWN: 43 if event.key==K_SPACE: 44 if self.game_state==second: 45 self.game_state==third 46 elif self.game_state==third: 47 self.game_state==first 48 elif self.game_state==first: 49 self.game_state==second 50 51Invader()
補足情報(FW/ツールのバージョンなど)
python(3.5.5)を使っており、エディタはvscode使っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/25 12:03