自己紹介
情報理工学部SAコース1回生のuMaです. (Twitter:@uMa_1133)
バイトガチ勢でたまに走ったり,LaTeXで文書つくったり,C言語,pythonを勉強したりしてます.
今回はSA演習の授業の課題でtkinterを使用した簡単なシューティングゲームを作成してみました.
なぜにtkinter?
そもそもtkinterとは,PythonでGUIを組むことができるものです.
tkinterは標準ライブラリで全員が導入するという手間を省けるため,今回のグループワークではこれを使用させていただきました.
ゲーム作成の流れ
今回,我々のグループではそもそもpythonの知識(授業程度のものではなく)を持った者がいなかったので,基礎知識を深めるところからスタートしました.
具体的にはまず,任意の場所に画像を挿入する関数を作成する描画班と,ゲームの本体を作成する,本体班に別れ,それぞれの担当するプログラムを完成させるのに必要な技術を学んでいきました.(私は本体班でしたので,具体的には関数の作成方法から始まり,tkinterで,描画したものを動かす方法や,ボタンを作成し,押されたときに任意の関数を呼び出す方法などを主にインターネットを通して学習しました.)
完成したゲームがこちらになります
完成したゲームがこちらになります.
これがタイトル画面.
今回はあまり時間がなかったため,単調なタイトル画面になってしまいましたが,とりあえずボタンを押せばスタートができるようにしてみました.
後の展望の部分でも挙げていますが,ここで難易度選択ができるようにすると,なお良いものになるのではないかと思いましたが,やはり時間がありませんでした.
ここから3つカウントダウンがあり,ゲームがスタートします.
そしてゲーム画面がこちら.
本ゲームでは,自分が操作する飛行機が,左側の白い画面内を自由に移動できるため,十字キーではなく,右側の緑の画面の上でカーソルを動かして操作します.
左側の上の緑のバーはHPバーで,赤いバーは残弾数を表しています.
下の黒い部分では,HPやscore,残弾数が表記されています.
最大HPや,最大の弾数は簡単に変更できるようにしてあるため,難易度設定を実装する際には,この数値や,敵の数を増やすことになると思います.
敵であるUFOはランダム出現です.
ゲームオーバー画面はこんな感じ.
これもまた,時間の関係で簡素な感じですが,トータルスコアも表示させるようにしてあります.
以上が今回作成したゲームです.
展望
今回作成したシューティングゲームでは,ゲーム終了後に,再スタートするということができないので,それを可能にすること.また,難易度選択を可能にすることなどが今後の展望として挙げられますが,今回作成したプログラムは今後本格的にいじるつもりはありませんので,もし時間があればやってみようかと思います.
参考
今回,シューティングゲームを作る際,最も参考にさせていただいたサイトはこちら