Jumper icon indicating copy to clipboard operation
Jumper copied to clipboard

Add path:shift()?

Open saschagehlich opened this issue 10 years ago • 3 comments

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.

saschagehlich avatar Jun 30 '14 18:06 saschagehlich

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

Yonaba avatar Jun 30 '14 18:06 Yonaba

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.

saschagehlich avatar Jun 30 '14 18:06 saschagehlich

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.

pancinteractive avatar Aug 27 '14 14:08 pancinteractive