ゲーム用のキャラクター生成ウィザードを作成しようとしています。あるクラスでは、キャラクターの属性を計算します。別のクラスでは、キャラクターの属性に基づいて利用できる専門分野をユーザーに表示しています。ただし、異なるクラス間で変数を渡す方法を思い出せません。
これが私が持っているものの例です:
class BasicInfoPage(wx.wizard.WizardPageSimple):
def __init__(self, parent, title):
wiz.WizardPageSimple.__init__(self, parent)
self.next = self.prev = None
self.sizer = makePageTitle(self, title)
<---snip--->
self.intelligence = self.genAttribs()
class MOS(wx.wizard.WizardPageSimple):
def __init__(self, parent, title):
wiz.WizardPageSimple.__init__(self, parent)
self.next = self.prev = None
self.sizer = makePageTitle(self, title)
def eligibleMOS(self, event):
if self.intelligence >= 12:
self.MOS_list.append("Analyst")
問題は、BasicInfoPage クラスから MOS クラスへの "intelligence" 変数の使用方法がわからないことです。私はインターネットの周りからいくつかの異なることを試しましたが、何もうまくいかないようです. 私は何が欠けていますか?
編集これを投稿した後、あまり説明していないことに気付きました。1980 年代の Twilight 2000 RPG のコンピューター バージョンを作成しようとしています。
wxPython を使用してウィザードを作成しています。私のクラスの親クラスは wxPython の Wizard です。このウィザードは、ユーザーにキャラクターの作成を案内するので、基本情報ページ (クラス BasicInfoPage) で、ユーザーはキャラクターの名前を指定し、キャラクターの属性を「ロール」することができます。それが「self.intelligence」の由来です。
ユーザーがキャラクターの専門分野を選択するウィザードのさらに先のページで、彼女が作成した属性を使用しようとしています。利用できる専門分野は、キャラクターが持つ属性によって異なります。たとえば、知性が十分に高い場合、キャラクターは Intel Analyst になることができます。
特に OOP のアイデアで、プログラミングを始めてから数年が経ちました。そのため、基本的にクラスとメソッドを使用してグローバル変数を作成する方法について混乱しています。