python でゲーム的なものを作る
- M.Katono
- 2019年8月1日
- 読了時間: 2分
更新日:2019年8月1日

pythonのGUIの勉強をしようと思い、ゲーム的なものを作ってみることにした。ネット検索すると、簡単なブロック崩しやシューティングゲームが多くヒットする。とりあえずブロック崩しのサンプルコードを丸写しして動かしてみたがイマイチ理解できなかったので、最初から作ることにした。
どこかのサイトに「グローバル変数の値はなるべく変えない」みたいなことが書いてあったので、それに従うことにする。
使用言語はpython3、TkinterでGUIを作ることにする。
1、tkinterをインポートして、画面を表示する。
↓
2、canvasを表示し、ボールを書いてみる。
↓
3、ボールを動かしてみる。
↓
4、壁と天井にぶつかったら向きを変える。
・
・
・
みたいな感じで、徐々に作っていった。
分かりやすいと感じたところ
・Tkinterは少ないコードでウィンドウを表示できるので分かりやすい。シンプルな処理を簡単にできるが、難しい機能は無い感じ?
・別クラスの変数を参照したりなんかが、結構かんたんにできた気がする。後から機能を追加したくなったときなんかに、大きく構造を変えずに実装できた。
難しいと感じたところ
・ブロックやパドルに当たったときの処理はかなり悩んだ。なるべく不自然な動きをしないようにしたいが、細かく調整してみても変な動きをする。まだ全部は解決できていない。
・変数のスコープが全然わかっていなかったので最初苦労した。他の言語とは感覚が違うような気がする。グローバル変数とローカル変数の違いをちゃんと意識しながらコーディングしないと、途中で混乱してしまう。
なんだかんだで300行くらいで済んだので短め?
最初は繰り返しの処理を30msごとにしたが、60msごとでも不自然じゃなかったので変えた。そのほうが処理が軽い。
機能
・パドル操作はキーボードの<Left><Right>のみ
・メニューバーに画面を閉じる"Quit"とゲーム開始"Start"を作った
・メニューの"Quit"はキーボード<q>、スタートは<space>でも動く
・ゲームクリアやゲームオーバー後はキーボード<f>で再スタート
Comentarios