質問: tk.Canvas() win.bind("", down_key) win.bind("", up_key) game_main() win.mainloop() ``` このコードを実行したところ、whileループに差し掛かっていることは確認できたのですが、 GUIに対して何度スペースキーを入力しても、ループを抜けることができませんでした。 GUIとwhileの相性が悪いのかもしれないと思ったのですが、どうでしょうか。 また、解決策など教えていただけると幸いです。
回答: このコードだと、game_main() 内でspaceキーを待ち受ける無限ループになってしまい、 win.mainloop() まで到達しないのでそもそもウィンドウすら表示されません。 (ちなみに、 `while not key == "Space":` の Spaceは spaceの間違いのようです) tkinterはイベントモデルのようなので、while Trueで無限ループを回すようなコードを書くと すべての処理がそこでとまってしまいます。 で、スペースキーのハンドリングなのですが、以下のように書くとそれだけで動いてしまいます。 `win.bind("",count_down)` ゲーム開始前とゲーム中とでspaceキーの意味が異なると思うので、そのあたりでまだまだ考慮が必要そうですが、手元の環境ではこれで動きました。