diff ai.d @ 13:e1004697cae1

tracking
author zzzzrrr <mason.green@gmail.com>
date Mon, 23 Mar 2009 08:02:23 -0400
parents 2ecd16840900
children af1e8620f027
line wrap: on
line diff
--- a/ai.d	Sun Mar 22 12:10:16 2009 -0400
+++ b/ai.d	Mon Mar 23 08:02:23 2009 -0400
@@ -31,7 +31,7 @@
 module openmelee.ai;
 
 import tango.io.Stdout : Stdout;
-import tango.math.Math : atan2;
+import tango.math.Math : atan2, abs, PI;
 
 import blaze.common.bzMath: bzVec2;
 import openmelee.steer : Steer;
@@ -54,15 +54,38 @@
 	    steer.update();
 	    bzVec2 st;
 	    st = steer.steerForPursuit(enemy.state, maxPredictionTime);
-	    //ship.thrust();
+	    
 	    ship.state.target = st;
         float angle = atan2(st.x, st.y);
+		
+		Stdout("Target angle: ")(angle).newline;
+		
+		float x = ship.state.forward.x;
+		float y = ship.state.forward.y;
+		float angle2 = atan2(x,y);
+		
         
-        if(angle < 0) {
-            ship.turnLeft();
-        } else {
-            ship.turnRight();
-        }
+		float rel = angle2 - angle;
+		
+		if(abs(rel) > PI/8) {
+			if(angle < angle2) {
+				ship.turnLeft();
+				ship.state.turn = true;
+			} else {
+				ship.state.turn = true;
+				ship.turnRight();
+			}
+		} else {
+			ship.rBody.angularVelocity = 0.0f;
+			ship.state.turn = false;
+		}
+		
+		ship.state.enemyAngle = rel;
+		
+		float range = (ship.state.position - enemy.state.position).length; 
+		if(range > 20 && !ship.state.turn) {
+			//ship.thrust();
+		}
     }
 
 }