【pythonゲーム作成】pythonでマインスイーパー作ってみるよ【その2】


【pythonゲーム作成】pythonでマインスイーパー作ってみるよ【その2】

今回はpythonでシンプルなマインスイーパーを作成してみたいと思います。
windowsに搭載されていた昔ながらのマインスイーパーを目指してみます!

おなじみのこんなやつ
↓↓↓

tkinterモジュールでは完全再現とまではいきませんが、なるべく似ているものを
作れるようにしていきたいと思います!

前回までのコード
↓↓↓

from tkinter import *

####メイン画面の生成####
root = Tk()
root.title("マインスイーパ")
root.resizable(0,0)     #サイズ変更不可にする

root.mainloop()

それでは、レッツスタート!!

【STEP2】メニューを作成する

はい、次はメニュー作成します。
画面上部の「ゲーム」や「ヘルプ」の部分ですね。
ただ、その中の具体的な項目とか全然覚えていないので、シンプルなものにします。

・「ゲーム」をクリックしたら、さらに「初級」、「中級」、「上級」を表示する

・「ヘルプ」ではなくて「終了」にする

というようにしましょう。
それではコードです。このコードは前回の上のコードの6行目と8行目の間に入れましょう。

###メニュー作成###
#メニューオブジェクトを作る
menu_ROOT = Menu(root)
#メインウィンドウ(root)のmenuに作成したメニューオブジェクトを設定し更新
root.configure(menu = menu_ROOT)

#ゲームメニューを作る。menu_ROOTが親オブジェクト
menu_GAME = Menu(menu_ROOT, tearoff = False)

#「ゲーム」というラベルで親メニューをrootメニューに追加。
#サブメニュー付きなのでadd_cascadeメソッドを使う
menu_ROOT.add_cascade(label = 'ゲーム(G)', under = 4, menu = menu_GAME)
#「初級」「中級」「上級」ラベルでサブメニューを親メニュー(menu_GAME)に追加
menu_GAME.add_command(label = "初級(B)", under = 3)
menu_GAME.add_command(label = "中級(I)", under = 3)
menu_GAME.add_command(label = "上級(E)", under = 3)
#「終了」ラベルでメニューをrootメニューに追加
menu_ROOT.add_command(label = "終了(X)", under = 3)

先ほどの何もないまっさらのメイン画面をメニュー付きの画面にするには、
3行目でメニューオブジェクトを作成し、5行目でメイン画面をメニュー付き画面に
更新する、といったイメージでしょうか。configure()メソッドというのはこのように
オブジェクトを更新する際に使用します。

8~16行目でゲームメニューとそれをクリックした際に表示されるサブメニューを
作成・表示しています。
18行目でもう一つの終了メニューを作成しています。こちらはサブメニューなど
無いため、親メニューオブジェクトに直接追加していますね。
14~16行目と18行目でadd_commandを実行しているオブジェクトが異なりますので、
書き方に注意が必要です。

また、underオプションでショートカットキーを追加できます。
このように書くことで、ゲーム(G)ではaltキー+Gでそのメニューを開くことができます。
underオプションで指定した文字でショートカットが自動的に作成されるみたいです。便利!!

今はまずUIを作成するようにしたいので、実際にクリックした際のイベント等は省略しています。

次回は画面上にフレームを配置してゲーム画面の枠組みを作成したいと思います!

  • このエントリーをはてなブックマークに追加

PAGE TOP