【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を作成するようにしたいので、実際にクリックした際のイベント等は省略しています。
次回は画面上にフレームを配置してゲーム画面の枠組みを作成したいと思います!