お花畑に行きたい

技術系のことや日常

Tkinterを使ってゲームを作ってみた

この記事は長崎県立大学 Advent Calendar 2019の19日目の記事になります。 前回の記事はこちら。

serverboujin.hatenablog.com

皆さんお久しぶりです。小林(仮)です。

12月も後半になったので、クリスマスソングを聴きながらこの記事を書いています。 やっぱりクリスマスソングはいいですね。雰囲気がとても大好きです。

後、大学4年生のこの時期といえば卒論です。 今年中に完全に終わらせる予定だったのですが年を跨ぎそうです。 安心してクリスマスを迎えたかった…

では本題に入ります。

今回はTkinterを用いてちょっとしたゲームを作ったのでそのことについて書いていきます。

何を作ったのか

久しぶりに何か作りたくなったのでゲームを作ることにしました。

そこで作成したゲームが、

「10秒間でどれだけクリックできるのかゲーム」

です。

どういうゲームかというと名前の通りで、10秒間に左クリックしまくって何回クリックできたのかを見て喜ぶだけです。 なんと単純。

環境

OS : Ubuntu 18.04 LTS

言語 : Python 3.6.8

Tkinter 8.6

全体

完成したプログラムがこちらです。

GitHubでも公開しています。 github.com

いろいろ苦戦しましたが一応完成しました。

リファクタリングしろ!って感じですね、すいません。

今回はただプレイするだけでなくページ遷移も行いたかったのでframeを使ってタイトル画面とリザルト画面も作りました。

ページ遷移するときは、遷移先のページのframeを最上面に持ってきて表示するやり方が簡単そうだったのでその手法を採用しました。 (もっといいやり方があったら教えてください)

ゲーム画面

ゲーム画面はこんな感じです。

  • タイトル画面

Startボタンを押すと3秒カウントダウンした後にプレイ画面に遷移するようになっています。

f:id:Kobayashi9:20191218014043p:plain
タイトル画面

  • プレイ画面

10秒間ひたすらClickボタンをクリックします。

f:id:Kobayashi9:20191218014019p:plain
プレイ画面

  • リザルト画面

クリックした回数の結果です。 Titleボタンを押すとタイトル画面に戻ります。

(あれ、Titleボタンの位置がおかしい…笑)

f:id:Kobayashi9:20191218014100p:plain
リザルト画面

最後に

このゲームを見て、

「あれ…なんかどこかで見たことあるぞ?」

と思った方もいるかもしれません。

そうなんです。実はこのゲーム、2016年の長崎県立大学の学園祭でCyber研究会が展示していたゲームとほとんど同じなのです。 *1

当時は誰かが作っていたのですが、個人的に思い出深かったので自分で作ってみることにしました。 久々にやるとちょっとだけ面白かったです。

後、Tkinterオブジェクト指向の練習にいいなと思いました。

参考文献

*1:展示されていたゲームでは対戦できていたが今回作成したゲームは一人用