senoutouya / recastnavigation

Automatically exported from code.google.com/p/recastnavigation
zlib License
0 stars 0 forks source link

add a velocity control per agent to dtCrowd #163

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
feature request: being able to set the agent velocity manually in dtCrowd

Original issue reported on code.google.com by vdel...@gmail.com on 20 Mar 2011 at 9:51

GoogleCodeExporter commented 9 years ago
As we discussed in the mailing list, it would be good also to have a function 
to instruct the agent to stop following the current target.

Original comment by vdel...@gmail.com on 21 Mar 2011 at 7:13

GoogleCodeExporter commented 9 years ago
A possible way to handle this could be to add a third state to dtCrowdAgent in 
addition to DT_CROWDAGENT_STATE_WALKING and DT_CROWDAGENT_STATE_OFFMESH.
It could be for example DT_CROWDAGENT_STATE_MANUAL.

In manual state the agent will not follow any target, instead it would be 
controlled manually by the setvelocity function. It would then be possible to 
switch an agent from manual state to walking and inversely.

Original comment by vdel...@gmail.com on 25 Mar 2011 at 8:41

GoogleCodeExporter commented 9 years ago
Yes, that was also my rough idea about it. It needs to be state and blend well 
with the other states, i.e. it must be delayed if the agent is currently in 
offmesh_state.

Original comment by memono...@gmail.com on 25 Mar 2011 at 9:12

GoogleCodeExporter commented 9 years ago
I'm using something like MANUAL already to allow me to keep agents as totally 
static obstacles for a time. Although I think of it more as an update flag - 
it's really just switching off most of the update loop.

However, I've also had some quite successful experiments with updating both the 
velocities, and the positions. I think all these are desirable.

Original comment by matthew....@gmail.com on 12 Sep 2011 at 5:03

GoogleCodeExporter commented 9 years ago
The most important feature we need is a method to manually set an agent's 
position.  This will be used when the physics system causes a player to move, 
i.e. they get pushed by an explosion or a moving object.

Original comment by jkl...@leadwerks.com on 4 Oct 2011 at 6:08

GoogleCodeExporter commented 9 years ago
This patch adds manual movement.  It was converted from another dudes patch to 
work with the latest source.  I forgot who made the original, sorry.  But it 
works well, I have been using it in a game.  In fact, I now use it exclusively 
instead of the pathfolling mode too.  Gives better performance and less bugs.

Original comment by nojunk...@googlemail.com on 23 May 2012 at 5:28

Attachments:

GoogleCodeExporter commented 9 years ago
I think I was the guy :) Anyway there is still a FIXME in case of 
OFF_MESH_CONNECTION: when the agent comes back to the mesh we don't in which 
state to put him (MANUAL or WALKING). Simplest solution would surely be to add 
an OFF_MESH_CONNECTION_MANUAL state.

I also noticed this:
+       if(ag->state == DT_CROWDAGENT_STATE_MANUAL)
+           int aoeu =0;

that I think isn't useful.

Original comment by charlesp...@gmail.com on 24 May 2012 at 7:14

GoogleCodeExporter commented 9 years ago

Original comment by memono...@gmail.com on 16 Sep 2013 at 6:55