comparison ai/ai.d @ 23:e79347dd38a3

steering
author zzzzrrr <mason.green@gmail.com>
date Thu, 26 Mar 2009 20:35:58 -0400
parents 4fce5596d1f6
children 441eb7672404
comparison
equal deleted inserted replaced
22:4fce5596d1f6 23:e79347dd38a3
56 steer = new Steer(ship); 56 steer = new Steer(ship);
57 } 57 }
58 58
59 void move(Ship enemy) { 59 void move(Ship enemy) {
60 60
61 st = bzVec2.zeroVect;
62
61 // Elementary steering AI 63 // Elementary steering AI
62 steer.update(); 64 steer.update();
63 //st = steer.steerToAvoidObstacles(0.25, m_world.bodyList); 65 //st = steer.steerToAvoidObstacles(0.25, m_world.bodyList);
64 st = steer.avoid(1.0, m_world.bodyList); 66 //st = steer.avoid(10.0, m_world.bodyList);
67 //st = steer.getSteering(m_world.bodyList);
65 68
66 if(st == bzVec2.zeroVect) { 69 if(st == bzVec2.zeroVect) {
67 avoidTurn = false; 70 avoidTurn = false;
68 //st = steer.steerForPursuit(enemy.state, maxPredictionTime); 71 st = steer.steerForPursuit(enemy.state, maxPredictionTime);
69 //chase(enemy); 72 chase(enemy);
70 } else { 73 } else {
71 avoid(); 74 avoid();
72 } 75 }
73 } 76 }
74 77
109 float y = st.y; 112 float y = st.y;
110 st = -bzVec2(y,-x); 113 st = -bzVec2(y,-x);
111 float angle = atan2(st.x, st.y); 114 float angle = atan2(st.x, st.y);
112 115
113 if(!avoidTurn) { 116 if(!avoidTurn) {
114 if(st.x <= 0) { 117 if(st.x >= 0) {
115 ship.turnRight(); 118 ship.turnRight();
116 } else { 119 } else {
117 ship.turnLeft(); 120 ship.turnLeft();
118 } 121 }
119 avoidTurn = true; 122 avoidTurn = true;