Каково использование свойства Node.remove_action в Pythonista?

#python #pythonista

Вопрос:

Кажется, я не могу понять, какой ключ для этого требуется. Используя узел,remove_all_actions просто удаляйте, как и все остальное. Поэтому мне нужно что-то, что могло бы просто остановить конкретные действия.

Вот код, который я тестирую:

 import sound import random import math A = Action  class MyScene (Scene):  def setup(self):  self.node = SpriteNode('emj:Alien',parent=self,position=(self.size.w,self.size.h))  self.node.run_action(A.move_to(0,0,10))    def did_change_size(self):  pass    def update(self):  pass    def touch_began(self, touch):  self.node.remove_actions() #lt;-----------What is the key here to stop self.node from moving. The error said “_Scene.Node hasn’t no attribute”    def touch_moved(self, touch):  pass    def touch_ended(self, touch):  pass  if __name__ == '__main__':  run(MyScene(), show_fps=False)```  

Ответ №1:

Вы можете дать исходному действию произвольный ключ, который затем используется для его остановки.

 from scene import *  class MyScene(Scene):  def setup(self):  self.node = SpriteNode('emj:Alien',parent=self,position=self.size/2)  self.node.run_action(Action.move_to(0, 0, 10), 'my animation')    def touch_began(self, touch):  self.node.remove_action('my animation')  if __name__ == '__main__':  run(MyScene(), show_fps=False)