Quellcode durchsuchen

Changed the way the walkDirection is computed in HelloCollision to avoid instatiating vector3f on each update. Also updated the wiki to reflect the change

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10714 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
rem..om vor 12 Jahren
Ursprung
Commit
01d8f36a52
1 geänderte Dateien mit 24 neuen und 11 gelöschten Zeilen
  1. 24 11
      engine/src/test/jme3test/helloworld/HelloCollision.java

+ 24 - 11
engine/src/test/jme3test/helloworld/HelloCollision.java

@@ -64,6 +64,11 @@ public class HelloCollision extends SimpleApplication
   private CharacterControl player;
   private Vector3f walkDirection = new Vector3f();
   private boolean left = false, right = false, up = false, down = false;
+  
+  //Temporary vectors used on each frame.
+  //They here to avoid instanciating new vectors on each frame
+  private Vector3f camDir = new Vector3f();
+  private Vector3f camLeft = new Vector3f();
 
   public static void main(String[] args) {
     HelloCollision app = new HelloCollision();
@@ -164,15 +169,23 @@ public class HelloCollision extends SimpleApplication
    * We also make sure here that the camera moves with player.
    */
   @Override
-  public void simpleUpdate(float tpf) {
-    Vector3f camDir = cam.getDirection().clone().multLocal(0.6f);
-    Vector3f camLeft = cam.getLeft().clone().multLocal(0.4f);
-    walkDirection.set(0, 0, 0);
-    if (left)  { walkDirection.addLocal(camLeft); }
-    if (right) { walkDirection.addLocal(camLeft.negate()); }
-    if (up)    { walkDirection.addLocal(camDir); }
-    if (down)  { walkDirection.addLocal(camDir.negate()); }
-    player.setWalkDirection(walkDirection);
-    cam.setLocation(player.getPhysicsLocation());
-  }
+    public void simpleUpdate(float tpf) {
+        camDir.set(cam.getDirection()).multLocal(0.6f);
+        camLeft.set(cam.getLeft()).multLocal(0.4f);
+        walkDirection.set(0, 0, 0);
+        if (left) {
+            walkDirection.addLocal(camLeft);
+        }
+        if (right) {
+            walkDirection.addLocal(camLeft.negate());
+        }
+        if (up) {
+            walkDirection.addLocal(camDir);
+        }
+        if (down) {
+            walkDirection.addLocal(camDir.negate());
+        }
+        player.setWalkDirection(walkDirection);
+        cam.setLocation(player.getPhysicsLocation());
+    }
 }