我正在创建一个点击器游戏,非常类似于饼干点击器。我的问题是,如何使变量每秒增加一个量?在
在这里,准备一场新的比赛。在
def new(self):
# set cookies/multipliers for a new game
self.cookie_count = 0
self.grandma = 10 # grandma bakes 10 cookies/second
然后,如果购买了奶奶,则添加10个饼干/秒self.cookie_计数每买一个外婆。示例:如果购买了2个grandma,self.cookie_count += 20
个cookies/秒。然而,我现在有,每次我买奶奶,我只得到10个饼干。在
我知道这和时间有关,但除此之外,我不太确定从哪里开始。在
你需要使用时间模块。您可以使用
time.time()
捕获时间段。在另一个选择是验证表达式
^{pr2}$now - start > timeout
。它们都将执行相同的操作,但如果超时时间大于1,这将是解决方法。上面的第一个代码行不通。在在pygame中实现这一点的方法是使用
pygame.time.set_timer()
,并每隔给定的毫秒数生成一个事件。这将允许在脚本的主循环中处理事件,就像处理其他事件一样。在下面是一个有点无聊,但可以运行的例子:
与每秒递增一次cookies不同,您可以让cookie计算自启动以来经过的秒数。在某些情况下,这可能会导致问题(例如,这会使暂停变得复杂),但对于简单的游戏来说也会有效。在
我的Python有点生疏了,如果这不完全是惯用的话,那么很抱歉:
这看起来比仅仅使用
time.sleep
更复杂,但它有两个优点:很少在游戏中使用。如果您在动画线程上
sleep
,您将在睡眠期间冻结整个程序,这显然不是一件好事。即使在简单的游戏中这不是一个问题,出于习惯的考虑,sleep
的使用也应该受到限制。sleep
应该只在测试和简单的玩具中使用。sleep
不是100%准确。随着时间的推移,sleep
时间的误差将累积。这是否是一个问题,但完全取决于应用程序。只需减去时间,你就可以准确地(或至少以高精度)知道已经过去了多少时间。注:
使用上面的代码,
cookies
将是浮点数,而不是整数。这将更准确,但当您显示它时可能看起来不太好。在显示前将其转换为整数/四舍五入。以前从来没有玩过“饼干点击器”,我可能混淆了逻辑。如果有什么不明白的话,请纠正我。
如果玩家没有升级,我假设
self.grandma
是None
/错误的。相关问题 更多 >
编程相关推荐