Mercurial > projects > openmelee
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; |