Mercurial > projects > openmelee
changeset 13:e1004697cae1
tracking
author | zzzzrrr <mason.green@gmail.com> |
---|---|
date | Mon, 23 Mar 2009 08:02:23 -0400 |
parents | 2ecd16840900 |
children | af1e8620f027 |
files | ai.d main.d melee.d openmelee.geany ship.d urQuan.d |
diffstat | 6 files changed, 49 insertions(+), 24 deletions(-) [+] |
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(); + } } }
--- a/main.d Sun Mar 22 12:10:16 2009 -0400 +++ b/main.d Mon Mar 23 08:02:23 2009 -0400 @@ -94,7 +94,6 @@ }); jobHub.addPostFrameJob( { - whut.ship2.rBody.angularVelocity = 0.0f; gui.begin(cfg); gui.push(`main`); if (gui().getProperty!(bool)("frame.closeClicked")) {
--- a/melee.d Sun Mar 22 12:10:16 2009 -0400 +++ b/melee.d Mon Mar 23 08:02:23 2009 -0400 @@ -165,8 +165,8 @@ world.boundaryListener = m_boundaryListener; world.contactListener = m_contactListener; viewCenter = vec2(10, 10); - ship1 = new Orz(world); - ship2 = new UrQuan(world); + ship1 = new UrQuan(world); + ship2 = new Orz(world); auto planet = new Planet(world); }
--- a/openmelee.geany Sun Mar 22 12:10:16 2009 -0400 +++ b/openmelee.geany Mon Mar 23 08:02:23 2009 -0400 @@ -10,18 +10,18 @@ name=openmelee base_path=C:\\workspace\\openmelee make_in_base_path=false +description= +run_cmd= [files] -current_page=2 -FILE_NAME_0=1708;D;0;16;0;1;1;C:\\workspace\\openmelee\\boundaryListener.d;0 -FILE_NAME_1=1707;D;0;16;0;1;1;C:\\workspace\\openmelee\\contactListener.d;0 -FILE_NAME_2=1759;D;0;16;0;1;1;C:\\workspace\\openmelee\\main.d;0 -FILE_NAME_3=4517;D;0;16;0;1;1;C:\\workspace\\openmelee\\melee.d;0 -FILE_NAME_4=0;D;0;16;0;1;1;C:\\workspace\\openmelee\\models.d;0 -FILE_NAME_5=1870;D;0;16;0;1;1;C:\\workspace\\openmelee\\orz.d;0 -FILE_NAME_6=19493;D;0;16;0;1;1;C:\\workspace\\openmelee\\render.d;0 -FILE_NAME_7=1615;D;0;16;0;1;1;C:\\workspace\\openmelee\\ship.d;0 -FILE_NAME_8=1945;D;0;16;0;1;1;C:\\workspace\\openmelee\\steer.d;0 -FILE_NAME_9=1842;D;0;16;0;1;1;C:\\workspace\\openmelee\\urQuan.d;0 -FILE_NAME_10=147;None;0;16;0;1;1;C:\\workspace\\openmelee\\build-dmd-win.bat;0 -FILE_NAME_11=21370;D;0;16;0;1;1;C:\\workspace\\blaze\\blaze\\common\\bzMath.d;0 +current_page=5 +FILE_NAME_0=3145;D;0;16;0;1;1;C:\\workspace\\openmelee\\main.d;0 +FILE_NAME_1=1648;D;0;16;0;1;1;C:\\workspace\\openmelee\\melee.d;0 +FILE_NAME_2=1648;D;0;16;0;1;1;C:\\workspace\\openmelee\\orz.d;0 +FILE_NAME_3=10638;D;0;16;0;1;1;C:\\workspace\\openmelee\\render.d;0 +FILE_NAME_4=1648;D;0;16;0;1;1;C:\\workspace\\openmelee\\ship.d;0 +FILE_NAME_5=2349;D;0;16;0;1;1;C:\\workspace\\openmelee\\steer.d;0 +FILE_NAME_6=1648;D;0;16;0;1;1;C:\\workspace\\openmelee\\urQuan.d;0 +FILE_NAME_7=147;None;0;16;0;1;1;C:\\workspace\\openmelee\\build-dmd-win.bat;0 +FILE_NAME_8=304;Conf;0;16;0;1;0;C:\\workspace\\openmelee\\gui.cfg;0 +FILE_NAME_9=1648;D;0;16;0;1;0;C:\\workspace\\openmelee\\planet.d;0