Have you played any of the unreal tournament games? The way it pathfinds is like what you're asking. It uses a graph ( a bunch of nodes connecting to each other. It actually pre-calculates pathfinding, but you don't need to worry about that at first )
The link posted has a good image:
http://en.wikipedia.org/wiki/Graph_%28mathematics%29 ( look at the first one )
Looking at the image, image 1 = health,l 2=flak gun, 3 = ammo, 5 = flag, etc... If a bot wants to go from 3 to 5, you can use A* to find the path.
It just needs a graph ( a bunch of nodes, which can connect to other nodes ) The actual (x,y,z) location of the nodes doesn't matter. ( But if the distance is too far, you need to take that into account by the weight, or, add a node between them )
On Mon, Jan 26, 2009 at 7:11 PM, Yanom Mobis
<yanom@xxxxxxxxxxxxxx> wrote:
a graph, as in just a regular x, y kind of thing? I don't need an overly complex library, is something less complex available? |
You can use a regular list-type of tiles. And each list item holds a list of pointers to all tiles that it connects to. If you are doing a tile based map, using a 2D array could simplify things. ( using numPy )
# this is a bad example, but, to give you an idea:
>>> class Tile():
>>> def __init__(self): self.clist = []
>>> t1 = Tile()
>>> t2 = Tile()
>>> t3 = Tile()
# 1 connects to 2 and 3
>>> t1.clist.append( t2 )
>>> t1.clist.append( t3 )
# 2 connects to 1
>>> t2.clist.append( t1 )
# 3 connects to 1
>>> t3.clist.append( t1 )
# map a list of Tile()s
>>> map = [t1, t2, t3]
--
Jake