diff ai.d @ 12:2ecd16840900

added tracker
author Mason Green <mason.green@gmail.com>
date Sun, 22 Mar 2009 12:10:16 -0400
parents d998bf1b0654
children e1004697cae1
line wrap: on
line diff
--- a/ai.d	Sun Mar 22 09:35:24 2009 -0400
+++ b/ai.d	Sun Mar 22 12:10:16 2009 -0400
@@ -21,7 +21,7 @@
  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LED TO,
  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
@@ -30,6 +30,10 @@
  */
 module openmelee.ai;
 
+import tango.io.Stdout : Stdout;
+import tango.math.Math : atan2;
+
+import blaze.common.bzMath: bzVec2;
 import openmelee.steer : Steer;
 import openmelee.ship : Ship;
 
@@ -38,7 +42,7 @@
 
 	Steer steer;
 	Ship ship;
-	float maxPredictionTime = 0;
+	float maxPredictionTime = 0.5f;
 	
 	this(Ship ship) {
 		this.ship = ship;
@@ -48,8 +52,17 @@
 	void move(Ship enemy) {
 	    
 	    steer.update();
-	    steer.steerForPursuit(enemy.state, maxPredictionTime);
-	    
+	    bzVec2 st;
+	    st = steer.steerForPursuit(enemy.state, maxPredictionTime);
+	    //ship.thrust();
+	    ship.state.target = st;
+        float angle = atan2(st.x, st.y);
+        
+        if(angle < 0) {
+            ship.turnLeft();
+        } else {
+            ship.turnRight();
+        }
     }
 
 }