[Pogamut-list] Can't go backwards?

jakub.gemrot pogamut-forum at artemis.ms.mff.cuni.cz
Wed Oct 15 10:30:18 CEST 2008


Re: Re: Re: Re: Can't go backwards?
> 
>     public boolean action_moveBackwards()
>     {
>         this.log.info("Action MOVE BACKWARDS.");
>         Triple location = this.bot.getMemory().getAgentLocation();
> //point right in front of bot        
> Triple target = Triple.add(location, Triple.rotateYawPitchRoll(new Triple(50,0,0), bot.getMemory().getAgentRotation().x, 0, 0));
> //point right behind bot        
> Triple strafeLoc = Triple.rotateYawPitchRoll(Triple.subtract(target, location), Math.PI, 0, 0);
>         strafeLoc.normalize();    
>         
>         this.bot.getBody().strafeToLocation(strafeLoc, target);

I think the problem lies here ... strafeLoc and target are not vectors pointing somewhere (you want to run + you want to face) but absolute position within the world ... so you must do something like this
targetLocation = chosenNavPoint.location;
strafeToLocation( targetLocation, agentLocation );
// as strafe to location is always running directly to "targetLocation" specifying actual agentLocation will make the agent to look behind itself thus running backwards (not tested, should be working ;-)

Cheers! Jakub

----

Reply Link: <https://artemis.ms.mff.cuni.cz/pogamut/tiki-view_forum_thread.php?forumId=5&comments_reply_threadId=295&comments_parentId=253&post_reply=1#form>




More information about the Pogamut-list mailing list