-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathUtils--PathFinding.html
243 lines (199 loc) · 7.99 KB
/
Utils--PathFinding.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Utils::PathFinding - Pathfinding algorithm. : OpenKore source code documentation</title>
<link rel="stylesheet" type="text/css" href="openkore.css">
<link rel="stylesheet" type="text/css" href="highlight.css">
<!-- Fix broken PNG transparency for IE/Win5-6+ -->
<!--[if gte IE 5.5000]>
<script type="text/javascript" src="pngfix.js"></script>
<![endif]-->
</head>
<body>
<div id="title">OpenKore source code documentation</div>
<div id="navigation">
<ul>
<li><a href="http://www.openkore.com/">Main website</a></li>
<li><a href="index.html">Table of contents</a></li>
<li><b>Utils::PathFinding</b></li>
</ul>
</div>
<div id="main">
<h1>Utils::PathFinding - Pathfinding algorithm.</h1>
This module implements the
<a href="http://en.wikipedia.org/wiki/A-star_search_algorithm">A*</a>
(A-Star) pathfinding algorithm, which you can use to calculate how to
walk to a certain spot on the map.
<p>
This module is only for <i>calculation</i> of a route, not for
telling OpenKore to walk to a certain place. That's what <code>ai_route()</code> is for.
<p><table class="functionIndex">
<tr><th colspan="3">Functions in this module</th></tr><tr onclick="location.href='#PathFinding->new';">
<td class="return-type"></td>
<td class="func"><a href="#PathFinding->new">PathFinding->new</a></td>
<td class="decl">([args])</td>
</tr><tr onclick="location.href='#$PathFinding->reset';">
<td class="return-type"></td>
<td class="func"><a href="#$PathFinding->reset">$PathFinding->reset</a></td>
<td class="decl">(args...)</td>
</tr><tr onclick="location.href='#$PathFinding->run';">
<td class="return-type"></td>
<td class="func"><a href="#$PathFinding->run">$PathFinding->run</a></td>
<td class="decl">(r_array)</td>
</tr><tr onclick="location.href='#$PathFinding->runcount';">
<td class="return-type"></td>
<td class="func"><a href="#$PathFinding->runcount">$PathFinding->runcount</a></td>
<td class="decl">()</td>
</tr><tr onclick="location.href='#$PathFinding->runref';">
<td class="return-type"></td>
<td class="func"><a href="#$PathFinding->runref">$PathFinding->runref</a></td>
<td class="decl">()</td>
</tr><tr onclick="location.href='#$PathFinding->runstr';">
<td class="return-type"></td>
<td class="func"><a href="#$PathFinding->runstr">$PathFinding->runstr</a></td>
<td class="decl">()</td>
</tr>
</table>
<p><hr class="details_sep">
<h2>Details</h2>
<div class="details">
<p>
<div class="function"><a name="$PathFinding->reset"></a>
<h3>$PathFinding->reset</h3>
<dl>
<dt class="decl">
<span class="return-type"> </span><strong>$PathFinding->reset</strong>(args...)
</dt>
<dd>
<dl class="params_and_returns">
<dt class="returns"><strong>Returns:</strong></dt>
<dd class="returns">a PathFinding object</dd>
</dl><p>
<div class="desc">Required arguments:
<ul>
<li>start: a hash containing x and y values where the path should start.<br></li>
<li>dest: a hash as above, but for the path's destination.
</li>
</ul>
<p>
Semi-required arguments:
<ul>
<li>field: a hash with the keys <tt>dstMap</tt>, <tt>width</tt>, and <tt>height</tt>
</li>
</ul>
OR all of:
<ul>
<li>distance_map: a reference to a field map with precomuted distances from walls</li>
<li>width: the width of the field</li>
<li>height: the height of the field
</li>
</ul>
<p>
Optional arguments:
<ul>
<li>timeout: the number of milliseconds to run each step for, defaults to 1500</li>
<li>weights: a reference to a string of 256 characters, used as the weights to give
squares from 0 to 255 squares away from the closest wall. The first
character must be chr(255).
</li>
</ul></div>
</dd>
</dl>
</div>
<p><hr class="function_sep"><p>
<div class="function"><a name="$PathFinding->run"></a>
<h3>$PathFinding->run</h3>
<dl>
<dt class="decl">
<span class="return-type"> </span><strong>$PathFinding->run</strong>(r_array)
</dt>
<dd>
<dl class="params_and_returns">
<dt class="params"><strong>Parameters:</strong></dt>
<dd class="param"><code>r_array</code> : Reference to an array in which the solution is stored. It will contain hashes of x and y coordinates from the start to the end of the path.</dd>
<dd class="param"><code>Returns</code> : -1 on failure, 0 when pathfinding is not yet complete, or the number of steps required to walk from source to destination.</dd>
</dl><p>
<div class="desc"></div>
</dd>
</dl>
</div>
<p><hr class="function_sep"><p>
<div class="function"><a name="$PathFinding->runcount"></a>
<h3>$PathFinding->runcount</h3>
<dl>
<dt class="decl">
<span class="return-type"> </span><strong>$PathFinding->runcount</strong>()
</dt>
<dd>
<dl class="params_and_returns">
<dt class="params"><strong>Parameters:</strong></dt>
<dd class="param"><code>Returns</code> : -1 on failure, 0 when pathfinding is not yet complete, or the number of steps required to walk from source to destination.</dd>
</dl><p>
<div class="desc"></div>
</dd>
</dl>
</div>
<p><hr class="function_sep"><p>
<div class="function"><a name="$PathFinding->runref"></a>
<h3>$PathFinding->runref</h3>
<dl>
<dt class="decl">
<span class="return-type"> </span><strong>$PathFinding->runref</strong>()
</dt>
<dd>
<dl class="params_and_returns">
<dt class="params"><strong>Parameters:</strong></dt>
<dd class="param"><code>Returns</code> : undef on failure, 0 when pathfinding is not yet complete, or an array reference when a path is found. The array reference contains hashes of x and y coordinates from the start to the end of the path.</dd>
</dl><p>
<div class="desc"></div>
</dd>
</dl>
</div>
<p><hr class="function_sep"><p>
<div class="function"><a name="$PathFinding->runstr"></a>
<h3>$PathFinding->runstr</h3>
<dl>
<dt class="decl">
<span class="return-type"> </span><strong>$PathFinding->runstr</strong>()
</dt>
<dd>
<dl class="params_and_returns">
<dt class="params"><strong>Parameters:</strong></dt>
<dd class="param"><code>Returns</code> : undef on failure, 0 when pathfinding is not yet complete, or a string of packed shorts. The shorts are pairs of X and Y coordinates running from the end to the start of the path. (note that the order is reversed)</dd>
</dl><p>
<div class="desc"></div>
</dd>
</dl>
</div>
<p><hr class="function_sep"><p>
<div class="function"><a name="PathFinding->new"></a>
<h3>PathFinding->new</h3>
<dl>
<dt class="decl">
<span class="return-type"> </span><strong>PathFinding->new</strong>([args])
</dt>
<dd>
<dl class="params_and_returns">
<dt class="params"><strong>Parameters:</strong></dt>
<dd class="param"><code>args</code> : Arguments to pass to <a href="Utils--PathFinding.html#$PathFinding->reset"><code>$PathFinding->reset()</code></a>.</dd>
</dl><p>
<div class="desc">Create a new PathFinding object. If args are given, the object will
be initialized for you. If not, you must initialize it yourself
by calling <a href="Utils--PathFinding.html#$PathFinding->reset"><code>$PathFinding->reset()</code></a>.</div>
</dd>
</dl>
</div>
</div>
<p><hr><p>
<div id="footer">
<ul>
<li><a href="http://validator.w3.org/check?uri=referer" title="Valid HTML 4.01!"><img src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" height="31" width="88"></a></li>
<li><a href="http://www.mozilla.com/" title="Get Firefox - Take Back the Web"><img width="104" height="32" src="http://www.mozilla.org/products/firefox/buttons/getfirefox_small.png" alt="Get Firefox - Take Back the Web"></a></li>
<li><a href="http://www.mozilla.com/" title="If you were looking at this page in any browser but Microsoft Internet Explorer, it would look and run better and faster"><img width="45" height="45" src="http://linuxart.com/img/noIE-small.png" alt="If you were looking at this page in any browser but Microsoft Internet Explorer, it would look and run better and faster"></a></li>
</ul>
Last modified: Fri Nov 16 10:05:11 2012
</div>
</div>
</body>
</html>