저는 Tkinter를 사용하여 파이썬에서 텍스트 기반 게임을하고 있습니다. 창에는 레이블과 몇 개의 버튼 (주로 3 개)이 항상 포함되어 있습니다. GUI가 없다면 Pickle이나 Python I/O (.txt 파일)를 사용하여 데이터를 저장하고 나중에 검색 할 수 있습니다. 그러나 바인딩, 버튼 명령, 클래스 등을 잃지 않고 정확한 위젯을로드하도록 프로그램에 지시하는 가장 좋은 방법은 무엇입니까? 추신 : 버튼을 사용하면 위젯 프레임을 정리하고 새 위젯을 불러 낼 수 있습니다. 변수에 lambda (버튼의 명령)를 할당하고 미래에 그것을로드하고 플롯에서 올바른 지점을 얻을 수 있도록 저장하는 것을 생각하고 있습니다. 나는 그것을 위해 가야 하는가, 아니면 그 일을 성취하기위한 더 나은, 대안적인 방법이 있는가? (람다를 사용할 수 있다면, 그 일을하는 당신의 방법을 보니 여전히 감사 할 것입니다.)게임 내 저장 기능 (tkinter 게임에서)
2
A
답변
1
일종의 구성 파일에 물건을 저장해야합니다. generel에서는 JSON과 YAML을 파싱의 용이성을 위해 ini 파일 형식으로 사용할 것을 권장합니다.
또한 Windows 레지스트리 (이식성이 손실 됨)를 잊지 마십시오.
+0
YAML을 전혀 추천하지 않습니다. 사용하기에는 너무 복잡하고 지저분합니다. JSON,'ConfigParser' 또는'.py' 파일을 사용하고 싶습니다. – Arbiter
1
필자가 원하는 위치에 놓기 위해 위젯 관리자가 필요하다는 것과 필자는 값을 선택하기가 쉽다는 것을 이해했습니다.
은 다음과 같이 두 가지 기능 _setNewWidget, _deleteWidget을, 관리자라는 새로운 클래스를 작성합니다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)
을 이러한 방법으로 유 객체와 블리트를 만들 수 있습니다 어디서?
데이터를 저장하려면 다른 기능을 만들고 json으로 저장하십시오.
관련 문제
- 1. 파이썬 tkinter 게임 충돌
- 2. tkinter 메모리 게임 만들기
- 3. 하나의 메인 게임 루프를 사용하여 게임에서 모든 기능 실행하기 (As3)
- 4. 게임에서 개체를 저장 /로드하는 방법
- 5. 파이 게임에서 지연 기능
- 6. 게임에서 기능 구현
- 7. PentaHex 게임에서 게임 체크 끝내기
- 8. Tkinter에서 파이 게임 기능 사용
- 9. 플래시 게임 데이터 저장
- 10. iOS 게임에서 멀티 플레이어 기능 사용
- 11. 게임 종료 후 내 게임에서 AdMob 삽입 광고를 표시하려고합니다.
- 12. 내 아이폰 게임에서 두 번
- 13. Tkinter 캔버스 객체 저장
- 14. iOS에 게임 내 통화 저장 방법
- 15. 파이 게임 저장 오디오 파일
- 16. 내 게임에서 변수를 반환해야합니다.
- 17. 턴 기반의 게임에서 사임 (게임 센터)
- 18. C# 게임에서 "상태를 저장"하는 방법은 없나요?
- 19. Android 게임에서 자동 저장 및 자동로드 게임 개념과 내부 대에서 저장. 외장 (A.K.A. SD 카드)
- 20. 2D 게임에서 게임 이벤트 길이는 어떻게 처리됩니까?
- 21. TurnBasedMatch bytearray에 게임 데이터 저장
- 22. 게임에서 웹 체크인, 게임 로직이 도움이되었습니다.
- 23. Android 앱 내 Google의 +1 기능
- 24. 모노 게임에서 게임 페이지를 완전히 새로 고침
- 25. 캐릭터가 파이 게임 게임에서 얼어 붙었습니다.
- 26. Silverlight 게임에서 항상 게임 루프를 사용해야합니까?
- 27. 하스켈의 게임 기능
- 28. 파이 게임 재시작 기능
- 29. 게임 센터를 사용하여 게임 데이터/상태 저장/공유
- 30. 사진 내 게임에서 항아리
왜 데이터를 파일로 저장하지 않고 기존 게임을 다시로드 할 수있는 옵션이 있습니까? 당신이 그 일을 막고있는 것은 무엇입니까? –
다양한 유형의 구성 파일 형식과 사용할 파일 형식은 다음을 참조하십시오. https://martin-thoma.com/configuration-files-in-python/ – Arbiter
이 프로젝트를 계속 하시겠습니까? JSON을 * 마크 업 *으로 사용하여 이런 종류의 작업을 수행 할 수있는 프로젝트가 있습니다. 새로운 JSON을 즉시로드하고 뷰를 동적으로 변경할 수 있습니다. 아직 초기 단계에 있지만 데이터 및 명령 바인딩이 포함되어 있습니다. https://github.com/badkraft/razorware.pixelbox – IAbstract