Skip to content

PolygonPathFinder Demo GD Script

ScyDev edited this page Jan 3, 2015 · 5 revisions
demo finding path from f to t.

+-------+-------+
|       |       |
| f     |       |
+-------+-------+
        |       |
        | t     |
        +-------+


extends Spatial

func _ready():
	var pf = PolygonPathFinder.new()
	
	var points = Vector2Array()
	var connections = IntArray()
	
	# poly 1
	points.push_back(Vector2(0, 0))		#0
	points.push_back(Vector2(10, 0))	#1
	points.push_back(Vector2(10, 10))	#2
	points.push_back(Vector2(0, 10))	#3
	#points.push_back(Vector2(0, 0))	#0  # don't duplicate vertices
	connections.push_back(0)
	connections.push_back(1)
	connections.push_back(1)
	connections.push_back(2)
	connections.push_back(2)
	connections.push_back(3)
	connections.push_back(3)
	connections.push_back(0)

	# poly 2
	#points.push_back(Vector2(10, 0))	#1
	points.push_back(Vector2(20, 0))	#4
	points.push_back(Vector2(20, 10))	#5
	#points.push_back(Vector2(10, 10))	#2
	#points.push_back(Vector2(10, 0))	#1
	connections.push_back(1)
	connections.push_back(4)
	connections.push_back(4)
	connections.push_back(5)
	connections.push_back(5)
	connections.push_back(2)
	connections.push_back(2)
	connections.push_back(1)

	# poly 3
	#points.push_back(Vector2(10, 10))	#2
	#points.push_back(Vector2(20, 10))	#5
	points.push_back(Vector2(20, 20))	#6
	points.push_back(Vector2(10, 20))	#7
	#points.push_back(Vector2(10, 10))	#2
	connections.push_back(2)
	connections.push_back(5)
	connections.push_back(5)
	connections.push_back(6)
	connections.push_back(6)
	connections.push_back(7)
	connections.push_back(7)
	connections.push_back(2)
	
	print("points: ",points)
	print("connections: ",connections)
	
	pf.setup(points, connections)
	
	var path = pf.find_path(Vector2(2, 8), Vector2(12, 19))
	
	print("path: ",path)
	for step in path:
		print("step: ",step)

Clone this wiki locally