【问题标题】:Decrementing a time in python在python中减少时间
【发布时间】:2013-10-29 13:24:40
【问题描述】:

我在使用 python/pygame 编程的游戏中有一个计时器。

当我在主类中拥有所有东西时,计时器工作正常:

time=50

seconds_passed = clock.tick()/1000.0
time-=seconds
draw_time=math.tranc(time)
print(draw_time)

但是当我把它移到一个新的类播放器中时

class player():
   .
   .
   .
   set_time(self, draw_time):
        seconds_passed = clock.tick()/1000.0
        time-=seconds_passed
        draw_time=math.tranc(time)
        print(draw_time)

当我在主类中调用这个函数时:

class main():
    . 
    .
    .
    draw_time=20
    player = Player()
    print player.set_time(draw_time)

我的时间并没有减少,而是保持不变!

有什么建议吗?

【问题讨论】:

标签: python


【解决方案1】:

当您在方法中递减 time 时,您只是在修改值的副本。为了能够修改它,您可以改为传递对对象的引用。例如,您可以使用timedelta

from datetime import timedelta

class player():
   set_time(self, draw_time):
        seconds_passed = clock.tick()/1000.0
        time -= timedelta(seconds=seconds_passed)
        draw_time=math.tranc(time.seconds)
        print(draw_time)

class main():
    draw_time = timedelta(seconds=20)
    player = Player()
    print player.set_time(draw_time)

【讨论】:

  • 对不起,我不想要时间,我的意思是递减的计时器
  • 当然,您可以自己创建一个 Timer 类来代替它来记录时间。 timedelta 只是解决它的一种方法。
猜你喜欢
  • 2020-06-13
  • 1970-01-01
  • 1970-01-01
  • 2018-03-10
  • 1970-01-01
  • 1970-01-01
  • 2013-10-21
  • 1970-01-01
  • 2018-05-15
相关资源
最近更新 更多