私はPythonでTkinterを使ってテキストベースのゲームを開発しています。ウィンドウにはラベルといくつかのボタン(主に3)が常に表示されます。 GUIを持っていなければ、PickleやPythonのi/o(.txtファイル)を使ってデータを保存し、後でそれを取得することができます。しかし、バインディング、ボタンのコマンド、クラスなどを失うことなく、正確なウィジェットをロードするようにプログラムに指示する最良の方法は何ですか? P.S .:ボタンを押すと、ウィジェットのフレームが消去され、新しいウィジェットが呼び出されます。私はラムダ(ボタンのコマンド)を変数に代入し、それを保存して(Pickle?)それを将来ロードし、プロットの正しい点を得ることを考えています。私はそれのために行くか、それを達成するためのより良い、代替方法がありますか? (もしlambdaがうまくいくなら、私はあなたのやり方を見てもらえて残念です。)ゲーム内保存機能(tkinterゲーム)
2
A
答えて
1
何かの設定ファイルを保存する必要があります。 generelでは、構文解析を容易にするためにJSONとYAMLをファイル形式としてもお勧めします。
また、Windowsレジストリ(移植性が失われていることもあります)を忘れないでください。
+0
YAMLはまったくお勧めしません。使用するにはあまりにも複雑で乱雑です。私はむしろJSON、 'ConfigParser'や' .py'ファイル – Arbiter
1
私が理解しておいたのは、ウィジェットマネージャが必要な場所に配置し、値を取り出すのが簡単だということでした。
このように、二つの機能、_setNewWidget、_deleteWidgetを行い、Managerと呼ばれる新しいクラスを作成します。ただ、取得するには
class Manager():
def __init__(self, *args, **kwargs):
objects = {}
def _createButton(self, frame, id, function, etc):
# object[id] = frame.Button(function, etc, ...) i dnt' know sintaxes, but this is the way
def _deleteWidget(self, id):
# object[id] = None or del(object[id]) same here
:
manager = Manager()
manager._createWidget("button_fase_one", frameTk, etc, etc)
manager.objects["button_fase_one"].changeFrame() # example
print(manager.objects["button_fase_one"].text)
このようにuはオブジェクトやブリットを作成することができますあなたはどこにいたいですか?
データを保存するには、別の機能を作成してjsonとして保存します。
関連する問題
- 1. Pythonのtkinterの対戦ゲーム
- 2. Googleのゲーム:クラウドはゲームを保存するには、別の味
- 3. xboxゲームとして機能するゲームを作成する
- 4. Google Playサービスプラグイン - 保存されたゲーム
- 5. ゲームの状態を保存するAndroid
- 6. 保存されたゲーム+リアルタイムマルチプレイヤーAndroid
- 7. JavaScriptゲームのループが機能しない
- 8. 私のゲームのアプリ内購入は機能しません
- 9. PythonでTkinter .. Tic Tac Toeゲーム..ボタンでエラー!
- 10. tkinterポップアップからゲーム(オブジェクト)を閉じる
- 11. ゲーム
- 12. 保存機能
- 13. ゲーム内のスコア増加コントロール
- 14. ゲーム内GOBACKない作業
- 15. javafxでゲームを保存してロードする方法
- 16. ゲーム用に1トンのデータを保存する
- 17. MySQLデータベースのゲームの進捗を保存する方法
- 18. Google Play保存ゲーム - API上限に達しました
- 19. ゲーム通貨スウィフト3.0を保存するXcode
- 20. ゲームの状態を保存しますか?
- 21. Minecraft Docker画像:ゲームの保存の持続性
- 22. ゲーム情報を保存する方法PHP/HTML/CSS/JS
- 23. ゲームのオブジェクトを保存/ロードする方法
- 24. ゲームの変数をフォルダに保存する方法は?
- 25. ゲームの各レベルに保存されたゴーストを実装する
- 26. XNAゲームで高得点を保存する場所は?
- 27. ゲーム内の支払いが機能しなくなりました。「オブジェクトが存在しません」
- 28. ゲームで高値変数が機能しない
- 29. JavaScriptのゲームの矢印キーが機能しない
- 30. ロック・シザーズ・ペーパー・ゲーム - コードが機能しない
なぜデータをファイルに保存できず、既存のゲームをリロードするオプションがありますか?あなたがそれをやり遂げるのを妨げるのは何ですか? –
さまざまな種類の設定ファイル形式と使用する必要があるものについては、ここをクリックしてください。https://martin-thoma.com/configuration-files-in-python/ – Arbiter
このプロジェクトではまだ作業中ですか?私は*マークアップ*としてJSONを使ってこのようなことをするプロジェクトを持っています。新しいJSONをすぐに読み込んで、ビューを動的に変更することができます。まだ初期段階ですが、データバインディングとコマンドバインディングが含まれています:https://github.com/badkraft/razorware.pixelbox – IAbstract