我想制作一个带有大重置按钮的计时器,但我不知道如何让标签节点显示计时器的当前值(n)。
我试图找到答案,但没有任何帮助,我们将不胜感激。
from scene import *
import sound
import random
import math
import time
A = Action
class MyScene (Scene):
def setup(self):
n = 20
Scene.background_color = 1.0, 1.0, 1.0
self.button = SpriteNode('IMG_4056.PNG')
self.button.position = (512, 400)
self.add_child(self.button)
self.time = LabelNode(str(n), font = ('courier', 50))
self.time.position = (512, 100)
self.add_child(self.time)
self.life = LabelNode("Life", font = ('courier', 50))
self.life.position = (512, 700)
self.add_child(self.life)
pass
def did_change_size(self):
pass
def update(self):
pass
def touch_began(self, touch):
if touch.location in self.life.bbox:
n = 20
while (n >= 0):
self.time.remove_from_parent()
self.time = LabelNode(str(n - 1))
self.add_child(self.time)
time.sleep(1)
pass
def touch_moved(self, touch):
pass
def touch_ended(self, touch):
pass
if __name__ == '__main__':
run(MyScene(), show_fps=True)
答案 0 :(得分:0)
以下是计时器的示例实现,我希望它有所帮助。
import scene
def custom_action(node, progress):
ntime = node.parent.duration
i = ntime - int(ntime*progress)
if i >= 0:
node.text = str(i)
class MyScene(scene.Scene):
def setup(self):
self.test_label = scene.LabelNode('0',
position=self.size/2.0, parent=self)
self.duration = 10
self.activate_timer_label = scene.LabelNode('Activate Timer',
position=(self.size[0]/2-100, self.size[1]/2-100),
parent=self)
self.stop_timer_label = scene.LabelNode('Stop Timer',
position=(self.size[0]/2+100, self.size[1]/2-100),
parent=self)
def touch_began(self, touch):
if touch.location in self.stop_timer_label.frame:
animate_action = scene.Action.call(custom_action, self.duration)
self.test_label.remove_action('timer_action')
self.test_label.text = '0'
return
if touch.location in self.activate_timer_label.frame:
timer_action = scene.Action.call(custom_action, self.duration)
self.test_label.run_action(timer_action, 'timer_action')
scene.run(MyScene())