前提・実現したいこと
パイソンでゲーム(麻雀)を作ろうとしています。
ゲーム選択画面から、プレイ画面への遷移がうまくいかないです。
下記のコードを実行しているのですが、ボタンを一回クリックしても反応がなく、2,3回連続でクリックするとようやく反応します。ボタンをクリックした際にすぐ反応するようにしたいのですが、どのようにすればよろしいでしょうか?
解答よろしくお願いいたします。
該当のソースコード
import tkinter as tk import random import PIL from PIL import Image,ImageTk #風リスト kaze_list = ['東', '南', '西', '北'] #名前リスト name_list = ['しょうき', 'ウレハ', 'ちょげ', 'こうたろう'] #点数リスト point_list = [25000, 25000, 25000, 25000] #局 kyoku_list = ['東1局', '東2局', '東3局', '東4局', '南1局', '南2局', '南3局', '南4局', '西1局', '西2局', '西3局', '西4局'] index = 0 def ttl_play_click_btn(): global index index = 1 def ttl_setting_click_btn(): global index index = 1 def ttl_rule_click_btn(): global index index = 1 #ゲームスタート画面 def game_start(): fnt = "HG行書体" #タイトルを表示 title_label = tk.Label(root, anchor = tk.W, text="~麻雀~", font=(fnt,100)) title_label.place(x=340, y=160) #ボタン play_game_btn = tk.Button(root, text="ゲーム開始", font=(fnt,40), command=ttl_play_click_btn) play_game_btn.place(x=455, y=400) player_setting_btn = tk.Button(root, text="プレイヤー設定", font=(fnt,30), command=ttl_setting_click_btn) player_setting_btn.place(x=455, y=520) check_rule_btn = tk.Button(root, text="ルール確認", font=(fnt,40), command=ttl_rule_click_btn) check_rule_btn.place(x=455, y=620) def game_bg(): #風表示 #東 label = tk.Label(root, anchor=tk.W, width=2, text=kaze_list[0], font=("HG行書体",18)) label.place(x=455, y=435) #南 label = tk.Label(root, anchor=tk.W, width=2, text=kaze_list[1], font=("HG行書体",18)) label.place(x=695, y=435) #西 label = tk.Label(root, anchor=tk.W, width=2, text=kaze_list[2], font=("HG行書体",18)) label.place(x=695, y=275) #北 label = tk.Label(root, anchor=tk.W, width=2, text=kaze_list[3], font=("HG行書体",18)) label.place(x=455, y=275) #宅の画像 taku_img = Image.open('img/taku_center.png') taku_img = taku_img.resize((270,190),Image.ANTIALIAS) taku_img = ImageTk.PhotoImage(taku_img) cv.create_image(590,370, image=taku_img) #ゲームのメイン処理 def game_main(): global index, yama if index == 0: game_start() elif index == 1: game_bg() root.after(100, game_main) #なんかの処理 root = tk.Tk() root.title("麻雀") root.resizable(False,False) cv = tk.Canvas(root, width=1200, height=800,bg="#28A772") cv.pack() game_main() root.mainloop()
試したこと
クリックを数回すると画面が変わるので、コードは間違ってないのかな?と思っています。
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
Python 3.9です。
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/02 18:52 編集
2021/07/02 22:49 編集
2021/07/03 01:04
2021/07/04 16:20