OSDN Git Service

- used back system timer for cinematics, whatever it is :D
authorremy.bouquet@gmail.com <remy.bouquet@gmail.com@75d07b2b-3a1a-0410-a2c5-0572b91ccdca>
Tue, 18 Oct 2011 22:10:41 +0000 (22:10 +0000)
committerremy.bouquet@gmail.com <remy.bouquet@gmail.com@75d07b2b-3a1a-0410-a2c5-0572b91ccdca>
Tue, 18 Oct 2011 22:10:41 +0000 (22:10 +0000)
git-svn-id: http://jmonkeyengine.googlecode.com/svn/trunk@8453 75d07b2b-3a1a-0410-a2c5-0572b91ccdca

engine/src/core/com/jme3/cinematic/events/AbstractCinematicEvent.java
engine/src/core/com/jme3/cinematic/events/MotionTrack.java

index 30722c8..74e6448 100644 (file)
@@ -40,6 +40,7 @@ import com.jme3.export.JmeExporter;
 import com.jme3.export.JmeImporter;
 import com.jme3.export.OutputCapsule;
 import com.jme3.system.NanoTimer;
+import com.jme3.system.Timer;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
@@ -58,8 +59,8 @@ public abstract class AbstractCinematicEvent implements CinematicEvent {
     protected float initialDuration = 10;
     protected LoopMode loopMode = LoopMode.DontLoop;
     protected float time = 0;
-    //nano timer for precisely computing the elapsed time
-    protected NanoTimer timer;
+    protected Timer timer;
+    protected float start = 0;
     /**
      * the last time the event was paused
      */
@@ -108,9 +109,11 @@ public abstract class AbstractCinematicEvent implements CinematicEvent {
         onPlay();
         playState = PlayState.Playing;
         if (timer == null) {
+            //only when used as a control
             timer = new NanoTimer();
         }
-        timer.reset();
+        start = timer.getTimeInSeconds();
+        //timer.reset();
         if (listeners != null) {
             for (int i = 0; i < listeners.size(); i++) {
                 CinematicEventListener cel = listeners.get(i);
@@ -130,7 +133,7 @@ public abstract class AbstractCinematicEvent implements CinematicEvent {
      */
     public void internalUpdate(float tpf) {
         if (playState == PlayState.Playing) {
-            time = (elapsedTimePause + timer.getTimeInSeconds()) * speed;
+            time = (elapsedTimePause + timer.getTimeInSeconds() - start) * speed;
 
             onUpdate(tpf);
             if (time >= initialDuration && loopMode == loopMode.DontLoop) {
@@ -287,7 +290,8 @@ public abstract class AbstractCinematicEvent implements CinematicEvent {
      * @param cinematic 
      */
     public void initEvent(Application app, Cinematic cinematic) {
-        timer = new NanoTimer();
+        timer = app.getContext().getTimer();
+        //timer = new NanoTimer();
     }
 
     /**
index 3221926..0f3c1a0 100644 (file)
@@ -46,7 +46,6 @@ import com.jme3.renderer.RenderManager;
 import com.jme3.renderer.ViewPort;
 import com.jme3.scene.Spatial;
 import com.jme3.scene.control.Control;
-import com.jme3.system.NanoTimer;
 import java.io.IOException;
 
 /**
@@ -175,7 +174,7 @@ public class MotionTrack extends AbstractCinematicEvent implements Control {
     public void initEvent(Application app, Cinematic cinematic) {
         super.initEvent(app, cinematic);
         isControl = false;
-        timer = null;
+       // timer = null;
     }
 
     public void onUpdate(float tpf) {