Yonaba / Jumper

Fast, lightweight and easy-to-use pathfinding library for grid-based games
http://yonaba.github.io/Jumper
MIT License
607 stars 122 forks source link

Add path:shift()? #32

Open saschagehlich opened 10 years ago

saschagehlich commented 10 years ago

I think it would be useful to implement a method that returns the first node of a path and deletes it at the same time.

Yonaba commented 10 years ago

Can I have some use cases/examples where such a method would be really useful ?

saschagehlich commented 10 years ago

Well, if I have a path and I'd like an object to move along this path, I will make it move from node to node. As soon as I reached the node, I will want to get the next node and I don't need to know about the previous node any longer.

pancinteractive commented 9 years ago

You can create this relatively easily by populating a table with all node values. I created something like this for use with Corona SDK, so you can move and actor along the path.

if path then
    print(('Path found! Length: %.2f'):format(path:getLength()))
    for node, count in path:nodes() do
    print(('Step: %d - x: %d - y: %d'):format(count, node:getX(), node:getY()))
    setX[#setX+1] = node:getX() -- populating coordinate table on each movement
    setY[#setY+1] = node:getY() -- populating coordinate table on each movement
    end
end

I assume this would be just as easy to bake into the actual library, but you know what they say about assuming.