【问题标题】:How to have method called everytime variable increases?每次变量增加时如何调用方法?
【发布时间】:2021-01-03 14:22:49
【问题描述】:

我正在尝试在“游戏”中添加一些难度。基本上我想在每次玩家得分乘以 100 时调用方法来提高精灵的速度(它应该发生在 100、200 等)。

我正在使用 pygame 和 livewires 包。

我的处理方式是使用以下范围:

if self.score.value in range(0, 10000+1, 100):
                pizza.update_speed()

更新方法只是提高速度:

def update_speed(self):
        Pizza.speed += 0.25

所以...它有效,但我确信它并不优雅,并且有更好的方法。
我应该如何对其进行编码,以便我可以“无限”地以正确的方式检查分数?

【问题讨论】:

  • 使 speed 成为 property 的 Pizza 类。
  • 我可以包含整个代码,但速度是 Pizza 类的一个属性,我想要实现的是每次得分为 100、200 等时检查分数,并“无休止地”进行。
  • 在这种情况下,在speed 属性的setter 方法中,使用% 运算符来检测分数值何时是100 的整数倍(类似于@Rabbid76 的答案) .

标签: python python-3.x pygame livewires


【解决方案1】:

您可以检查self.score.value和100相除的余数(%)是否为0:

if self.score.value % 100 == 0:
    pizza.update_speed() 

【讨论】:

    猜你喜欢
    • 2019-01-24
    • 1970-01-01
    • 2023-04-09
    • 2020-07-10
    • 2023-02-07
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 2018-04-18
    相关资源
    最近更新 更多