소스 검색

make pingpong() more like loop()

David Rose 21 년 전
부모
커밋
86f270b5ec
1개의 변경된 파일10개의 추가작업 그리고 3개의 파일을 삭제
  1. 10 3
      direct/src/actor/Actor.py

+ 10 - 3
direct/src/actor/Actor.py

@@ -986,14 +986,21 @@ class Actor(PandaObject, NodePath):
                 else:
                     control.loop(restart, fromFrame, toFrame)
 
-    def pingpong(self, animName, fromFrame, toFrame, restart=1, partName=None):
-        """pingpong(self, string, fromFrame, toFrame, int=1, string=None)
+    def pingpong(self, animName, restart=1, partName=None,
+                 fromFrame=None, toFrame=None):
+        """pingpong(self, string, int=1, string=None)
         Loop the given animation on the given part of the actor,
         restarting at zero frame if requested. If no part name
         is given then try to loop on all parts. NOTE: loops on
         all LOD's"""
+        if fromFrame == None:
+            fromFrame = 0
+
         for control in self.getAnimControls(animName, partName):
-            control.pingpong(restart, fromFrame, toFrame)
+            if toFrame == None:
+                control.pingpong(restart, fromFrame, control.getNumFrames() - 1)
+            else:
+                control.pingpong(restart, fromFrame, toFrame)
         
     def pose(self, animName, frame, partName=None, lodName=None):
         """pose(self, string, int, string=None)