从屏幕操作中调用对象方法

时间:2018-08-09 20:39:40

标签: renpy

我得到了这个对象层次结构:

init 0 python:

  class CStats(object):
    def __init__(self):
      self.str = 10
      self.dex = 10
      self.con = 10
      self.wis = 10
      self.int = 10
      self.cha = 10

    def modify_str(self, amount):
      # do some calculation to update str
      pass

    def modify_dex(self, amount):
      # do some calculation to update str
      pass

  class CCharacter(object):
    def __init__(self, name):
      self.name = name
      self.stats = CStats()

然后我得到了这个屏幕

screen edit_character(who):
  frame:
    vbox:
      label "[who.name]"

      grid 4 2:
        text "Strength"
        textbutton "<<":
          action Null
        text "[who.stats.str]"
        textbutton ">>":
          action Null

        text "Dexterity"
        textbutton "<<":
          action Null
        text "[who.stats.dex]"
        textbutton ">>":
          action Null

如何将对象方法who.stats.modify_str()和who.stats.modify_dex()称为屏幕文本按钮的动作?诉诸Call()动作需要标签,而创建标签只是为了调用方法似乎显得过大,并且污染了命名空间cos,我有很多这样的情况。

SetField()动作不会执行,因为有很多规则可以更新值,因此也可以更新方法。

谢谢

0 个答案:

没有答案