top of page

python でゲーム的なものを作る

  • 執筆者の写真: M.Katono
    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>で再スタート

最新記事

すべて表示
Raspberry piとApache2

Raspberry pi zero whでWebサーバーを動かしてみて数日が経過した。まだ簡単な日記程度だが、シンプルなhtmlとcssだけなので軽快に表示できるし、アプリのマニフェストをそちらに移しても良いような気がしてきた。そもそもこのWixのサイトはアプリのマニフェス...

 
 
 
Raspberrypi 3B+のオン・オフ

普段はRaspberrypi zeroを起動しっぱなしにしていて、そこからRaspberrypi 3B+に電気を供給している。gpioからの電流では全く足りないので、gpioからの電流でリレーを作動させてACアダプタからの電流をオン・オフさせている。Raspberrypiの...

 
 
 

Comentarios


©2019 by MK. Proudly created with Wix.com

bottom of page