MMF2Sketchy's Pathfinding Examples.C:\Users\Hawker\Desktop\SketchyPathfinding.mfa4(@0׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽ c c c c c c c c c׽׽ c c c c c c c c c׽׽ c c c c c c c c c׽׽ c c c c c444444 c c c4444׽ c c c c c444444 c c c4444׽ c c c c c444444 c c c4444׽ c c c c c c c c44׽ c c c c c c c c44׽ c c c c c c c c44׽ c c c c c c c c c c c c c c44 c c׽ c c c c c c c c c c c c c c c c c c c c44 c c׽ c c c c c c c c c c c c c c c c c c c c44 c c׽ c c c c c c c c c c c c c c c c c c c׽ c c c c׽ c c c c c c c c c c c c c׽ c c c c׽ c c c c c c c c c c c c c׽ c c c c׽ c c c c c c c c c c c c c׽׽׽׽׽׽׽׽׽׽׽׽׽ c c c c׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽׽ c c c c c c c c c׽׽ c c c c c c c c c׽׽ c c c c c c c c c׽׽ c c c c c c c c c c c c c c׽ c c׽׽ c c c c c c c c c c c c c c׽ c c׽׽ c c c c c c c c c c c c c c׽ c c׽׽44 c c׽׽׽44 c c׽׽׽44 c c׽׽׽ c c c c c c c c c c׽׽׽ c c c c c c c c c c׽׽׽ c c c c c c c c c c׽׽׽ c c׽׽׽ c c׽׽׽ c c׽׽ATNFAPMSASUMAGMI """)))UUUMMMBBB999|PP3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f333f3333f3ffffff3f̙3f3f3f333f3333f3ffffff3f̙3f3ffffffffff!___www 00 h hpppph`@qxaxaxExpp`xÀI,0Qqqiph0$À$(mq4U444Uep`$IŽqUUuq$pHiÀ0YYYY888 xXDZmu8YY8U444UuuYyyyya`eÀm88Uqq4u8Y4ahÀDZ840Q4uY4aP,UMMIzizzzz {,{M{U<}}<yx8ax0uUQ ,m``E)}}Y $#W 51uO ~% ,;@= /&{m?S 5#P+*S}D1U4_Mk"8X)Th{> ){~L3jخvQ) 8WeO1 $&''&" è xAxAxAx㐂pppX$Ү0QqMAxhHÀiUUuUax`〆4YY8u$hu8U488puUQӎ0Ӽ<<$`axMUm)s͞c `[ q= P2pO-sAhppqmEumx4QӮq sH$?}S-l\4 e; mC uK&~S,MZ1N^4a6 e: k@$ rG) yM.~S3΁U5΁W5΁V5΀T4|Q1wL- foD' UgQhȡ}gP;) !/CYvȟoXA. .@SfܷxjVA. &5FWhͧ{kWJ8' %1@O`p˫pcRC1' +8GSesҷshZG;-! #-2# %/8DNV_gms{~umgbXNF.'! (u;3+ gQ=,) -95*  gM4)% .|B=,& XL91*  ]=4)" /I<3' GI@3'# w_F83" qE@-% *L7.% 9QF:*! GRF5+ IR@5& s\F5'" t\@0+ u]@:& qVF0' t]:0& r]F:+" USF6,ER@5& ESF5'" (S@0+ &R@:% RL5+! bR:0% fkQD7' 5]OB0& )ZL9. {]H;) bhSE2" 7bT@.( eP<5  sU@9# CjUN3)`Y=1% rcF9, 6rUG9( _PB/$ _n_O;.&m^H:' zcL>* 4u]N8% fV@,%@o_G2+ kT=6 Ps\E=# gPH+! Ns\T6* `X9-  BogH:+ oPA2! 1wXI9&cSD/# k[K5) kwgW@2 scK<' AwgN?* v]M6# }dT<(" mk[B-& tdK4- "zjQ92 ksZA9zbIA% #}eLC' ppWN/$ v\T4' {bY8+ ?قia?1#meC5' tlJ;+ {sP@0 S}uRB2 }[K:& _N=( cR@+ 4̊hWF/" al[J2% q`N6( vdS;, wfU<. ~m[B3Mp_F6!]tcI9#ziO?({jP?)~mSB+ oUD, ȁpVE, ɃrXG. CЄtYH0 Su[J1 Uy_N4! d{`O6" eT:& jY?)" lZ@*# r`F0( sbH1)udJ2*xgL4,xgL4,xgM5-yhN5-yhN5-xgM5-xgM5-xgL4,\階udJ2*\降tcI1*[蘋r`F0( ?Дm\B,$ %ГlZ@*# #ǎeT:& !|bQ7$ y_N4! u[J1 tZI0 T꓃rXG. EߒqVE- ԑpVE,~mSB+|kQ@*ziO?(^砅tcI9#4ϟraG7"#~m[B3  yhW>/ wfU<. Tޗq`N6( +ǔn\K3& (jYH1$ $󠌅cR@+ "BݟaP?*#š}[K:&wTD4! v䤔}uRB2 /̟tlJ;++phF7('p𣘄kcA3% -МzaX8+ +w^U6) %d㦔oVM.#)ş~fME' %x`G?#Kٟ~oU?7 .xhO81 *p졕rbH2+ !-˙|dT<)" +yaQ9&  #CͦpWG0 -vfN>)'S֟p`G8$2vfU>0 ,Jޤo^N7* &+gWF1%  Rԣ~wWH8%6zsSD5# +EףogG9+ #0{d\=0# *Bȥs\T6* !+𦝋~gOG+! &:u^G@%  3b⦜|mU?8 &2k[D1* #/Oɩ}fW@-' %8x륡}oXI4# .B~paJ<) ':LѦvfWA4" .4{몝hYI5) '-F~_PA.# !%=Vʨ|uVH9' ,9iߩiaC7* )5B𱦗zc\?3'*4I~jTM2(  )& "3@tڭreP<5 '3F稥xbT@.( !+=Pﱡ{nXJ7&! #3FLqcM@- "27QhZL9..3Kaͧ|bUG5* !%:F]˩qkQD7' *5@fϤr_X@5* !+5FpᥝyfRL5+! &5@rߩsfR@:% ,6FnߤyfYF60 "+:FrᩝymYL:+& &0:rߥm`R@5& ",5LuͨfYL;0" &:F]˩smRF:+" +6@\Ĥs_Y@6+ ",5FSyfSL5," &5@R񴧘rfR@:& ,6FS尢xeYF60 "+:FR׭wkXL:+& &0:Rhƣh]Q@5% "+5LXe𶨞}xaVK:0! %:FQbݩyicLB7*! *4>NYqè|rcSM90' !)2AK[e尣~oeTE@.& "/8FPZ˨ujZP@2- %-9BL_i䶣qg\LB4'# ",5=PZdȫ}xcYN>5( %4=FV`ڮ|n_ZF=3'  *19GQ`i鷡rm_PL91) &,9BPZdƩ~vc^OB=,% (/;DNclΩpg^LH;/+ $/7@T]fu֯ws`XO>:.$! &,=FO^hu׮}oa\IA9*' #19BOXenvӰrm`RM<4-  %-4@HU^gw̬}uc^PC>.(! '-7?GW_gr忡yvf^UD@4)% #+29HOWbisyҰ|sifVNF73) %+8?FQYcjp}}pmcYUF?7)& %+1;AJQWdkr{ǩ~rkdWTJA>1+%  %-3;AGT[bkr{Ĭ{rob[TGD;30%  &+0;BHRYcjp|ٽ|pmcYUHB;0.& !%/4:CISY_kpu}upk_\SIF:4/%# "'+39BHNZ`ems{վ{spe`ZNKB96+'" %*/9>CKQY^clnu{ķ}uqlcaYQNC>9/-%  $,05>>>>>>>>>>>>>>>===<;:9720-)($"  !#()*++,--------------------,++*)(#"   "  c c c c c c c c c 0 c99]]]]]99<ނMkMk99MkMk99YUUUU9999YΖs_?ϗc޶7K~^>~99Mks_?ϋc޶7K^>>~99~k_??Ǘ[޶7K^>~99~YΖ琷k_?w[ޮ7K^>}99skcw[WSWK7K7CC:99~YΖ߁k?ύw[ޮ~7K^>~u99~Mk_אc?w[~7K>~u99^_ׂ?ϗcǍ޶wS~^7C>}u99^YΖ?ϑ?Ǘc޶ޮWS~^C>~um99cw[wSWSWK7K7CC;::299]YΖw[޶ޮWK~~^>C~umm99=Mk޶wS7K^^>>;uume99=޶ޮWS~7K^>~:umee99=YΖWS~~^7C>>~}:mme]99WSWK7KC;:22*99YΖ~~7K^^>>C~}um2ee]}U99Mk^^C>>~:umm2e]}U99>>C~~}:umme2]}U]M99YΖ>~;}}u2me]*}U]M99c([ !||;|!|P[|!|P[P[|!|;|!|;|!|A;|!|;|!|8+;|!|8+8+;|!|8+;|!|;|!|;|!||!||!|P[|!||!||!|;ﻥ|!|;|!|;|!|;|!|;|!|;|!|;|!||!|P[P[|!|P[|!|!!!R XX   8YtY8   ,MJ+  ݶ߶j&ܾ  ``d&gU_f^f^^ݾ   @aUТ#Do]n_f  `!/@؇A/nevn?   u}a'sAЋb=^eeTKC;S+ ?`!c{Ncř/gnvLtRR}C ?@ Oc +^        444444444]  hhhhhhhhh< !              ![ !ށށށށށށށށށށށށށށ@0׽ cށ׽ށ׽ށ׽ cށ׽ށ׽ށ׽ cށ׽ށ׽ށ׽ c c c׽ށ׽ށ׽ c c c׽ށ׽ށ׽ c c c׽ށ׽ށ׽4 cށ׽ށ׽ށ׽4 cށ׽ށ׽ށ׽4 cށ׽ށ׽ށ׽ c׽ cށ׽ށ׽ c׽ނ cށ׽ށ׽ c׽ cށ׽ށ׽ c cށ׽ށ׽ c cށ׽ށ׽ c cށ׽ c ׽ c"׽ cށ׽ cށ׽ cށ׽ cށ׽ cށ׽ cށ׽ c c c4 cށ׽ c c c4 cށ׽ c c c4 cށ׽ c c  c4ށ׽ c c  c4ށ׽ c c  c4ށ׽ c c4 c4ށ׽ c c4 c4ށ׽ c c4 c4ށ׽ c cށ׽ށ׽ c cށ׽ށ׽ c cށ׽ށ׽A׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽ށ׽AGMI{׻kϻ[ǻwwwcccSSSCCC333oSKC;{3k+Ww#G_7K'3 kWCw;k3_+S#C7g+K 3ssccSSGG;;33s++_##K7#ۧϏ{gWG7{+osccW WGK;;//ssKK##kS;#ۻÓoG#gc[WO;/s_K ;CϳÛscSwGg7W+K#ߧϏwwggSWCG3;w'/g#[K ; +ӃkgSK73# o_SC7'{cK7'o _##'#'#'#'##skkSS??ۧןϓLJsgߏ[ӃSsKgCW;K3?+{3#o+_OC3 '{k_OC3' w < !ہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہ"% cccccccccccccccccccccccccccpMK    Xj 12ó03~{ { { { { { }Ç\>["ȡ}ux"[>[Ç}{ { { { ~~[cCRIbdiPkHZ_g~{ زݳߵܷڶݴݱ/7.޻ڻںظ׳{ { ޸ÂϏ̚Ҙ"-3C=P?Q6G'2aڳVfd^ۼ{ { ƅ Ξ Ӛ&&1'2!+h۵_nle{ { È ě РԞ}EU   zelapnh~ {u|  P^~+{Ώ ס͠|zvke$ -9zdgmp NvԲ&x~M{ˏQD ݢyvcg"!Zhcknv\p~@@幂#sxJ{ǑěZy`d&76.Ȩel{ME̩ Θՙ؜ ќNЫN{ƓϚ5}``%eRץ7߻ڢcwHĔĎЖٞڟӘȐȗN{utkgpÒM´ŭwDŎ͓̔ȑO{ʖY|} ݤ"ܪ 'ݱ&߰]Mx{Q{pT {ՠٟ!Ӭ!)ݱ+޲(᱊QZ_jCzb wҡ؟B U"Ŕ*ޱ.޳.+嵕zqn S\y{`}Ozo wң֡ҧD*.237̪~zwndd:nQxDvCVd/zvml tĒ!Ǖ%Ƙ(ĝ,Š.ɤ,Цrъga_ ^~ z yѢң֦ߩ@,26.Ԭfi[[99?{z Ϡѡ֥6ԫz$.4OqTZQgkzzÒ ə П!Σîj³'=pce:?zzēʙQħĮ{ث1ܲ®dֺ^4<:Ůzzr~h2Ú90eY(5Ҭ4ЫvȺzzœ͢Ӣէ!ث (߲*:änrK9=`zz} ΝϟҤר&ܰ*$ǡ2Ÿ7]zzv<Ëzȕʗ͜ Ҡ بݮ&/Qz{ { ~~~{ zzzzzzzzzz{{| {{zzzzzzz{ ~w  , 8 1BCCCCCCCCCCCCCCCCCCCCCCCC?+  "% " oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo< !;;;;;;;;; ; ;  ;  ; ;;;;; ;  ;  ; ; ;;;;;;;;!;P  !;;;;;;;;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;;;  ;  ;  ;  ;  ;  ;;;;;!;  !;;;;;;;;; ; ;  ;  ; ;;;;; ;  ;  ; ; ;;;;;;;;!;v  !;;;;;;  ;  ;  ;  ;  ;  ;;;  ;  ;  ;  ;  ;  ;  ;  ;  ;  ;;;;;;;!;Sketchy's Pathfinding Examples0d&(%' &(%' &(%' &(%' &H&File&New F2Pass&word&Pause Ctrl+PPla&yers Ctrl+Y&Quit Alt+F4&OptionsPlay &samples Ctrl+SPlay &musics Ctrl+M&Hide the menu F8&Full Screen Alt+Enter&Help&Contents F1&About...  P Y S Mpqsw  KcArray.mfxArray%Y KcBoxA.mfxActive System Box%Y kclist.mfxList%Ybr AdvanceWars{׻kϻ[ǻwwwcccSSSCCC333oSKC;{3k+Ww#G_7K'3 kWCw;k3_+S#C7g+K 3ssccSSGG;;33s++_##K7#ۧϏ{gWG7{+osccW WGK;;//ssKK##kS;#ۻÓoG#gc[WO;/s_K ;CϳÛscSwGg7W+K#ߧϏwwggSWCG3;w'/g#[K ; +ӃkgSK73# o_SC7'{cK7'o _##'#'#'#'##skkSS??ۧןϓLJsgߏ[ӃSsKgCW;K3?+{3#o+_OC3 '{k_OC3' w?? Grid  ObstacleA  4ZCostc Movement #122"NodeList  Movement #1List kclist.mfx%Y(PArialZStart -4 CurrentNodeMoveXMoveYMoveDirPath Movement #122222222 Pathfinding 4XStartYStartXOffsetYOffsetXCurrentYCurrent CostToHereMoveDir TileWidth TileHeight MapWidth MapHeightMaxRange PathCostTileCostPath Movement #122  PathArray   Movement #1Array KcArray.mfx%Y$$ MapArray   Movement #1Array KcArray.mfx%Y$$ ObstacleB 4ZCost Movement #122!InfoBox  Movement #1Active System Box KcBoxA.mfx%Y@@"ArialMoveZone 4  Movement #122 pppppppppp@ @(),0 ` @` ` @ @ ` ` `` ` @@`   ` @! " #@% `* /12`38`9:`+-4567;<`=>?`@& '$Evts*h|l%"ArialBoldh|l%"Arial(hu|l%"Arialh//|l%"Arialf ~n&Setuph 4|l%"Arial <-Obstacles " *-Obstacles p ^ &  &   S + f ~n&PathfindingBh  |l%"Arial  $   > 2&  > 2&   <-FindPathf h  |l%"Arial  . $  : 2" : 2"  6(  6(   <-FindPathf h  |l%"Arial *-FindPathf *-FindPathf, 1  X "U"V- 00 ,  00  8- Path ` b -0   ` b -1   h |l%"ArialJ &- Path, 1 d 2L"T   d 2L"T   l 2T Z    ""X > &- Path6(  6(   "$  &- Path  "# v &- Path$  2$ :h |l%"Arial &- Path, 2 , 2 , 2 :-Subloop , 2 , 2 , 2 :-Subloop , 2 , 2 , 2 :-Subloop , 2 , 2 , 2 :-Subloop  (-Subloop x Z       b - 99(  ,4(   J (-Subloop 2 x Z       2x)  V Z    `1 =H- Z     (-SubloopB  2 (  B  2 (  L (   L (   N (    N (    "V- 00  ,  00    b 4-  (  (   b 4-  (  (   h |l%"Arial b &- Path8 "W  $- Path9h |l%"Arial!  4! &-Cost:  Z    /Path:  Z    /Loops:   f ~n&Movementh ! |l%"Arial  "!& $  1 =h- Z       , 2 "#  #"$  h $#|l%"Arial l %$$  .  2 .  2 <  2" > 2&  > 2&   "$ , 2 h &%|l%"Arialn '&$  .  2 .  2 <  2" h 2P   4&  ,  2 h ('|l%"Arial )($  .  2 .  2 \ 2D     Zx 2`     Zh *)|l%"Arial +*$  .  2 ^P   L! 24  h ,+|l%"Arial -,$  .  2 ^P   L! 24   .-Rems Start moving the object Stop movingMove towards next nodeSelect a direction to moveMove horizontallyMove verticallyStore obstacles in map array. In practice, you'd most likely do the exact opposite (load the obstacles and other map data from an external array file, created using a level editor), but obviously we can't demonstrate a pathfinding procedure without a map...5Set default start and target positions, and find path Set start position and find pathStart pathfinding1Get current node position and distance from startCheck if adjacent squares are within range, have not been visited already by an equally direct route, and are not outside the bounds of the map - and then add to the list of squares to be visited. 8Stop searching if the list of squares to visit is empty.! Show info((by Adam Hawker (aka Sketchy / MuddyMole)Pathfinding ExampleThis example is designed to be compatible with the majority of exporters, including Android and iOS, for which no pathfinding extension is available at present. However, pathfinding is very CPU intensive (even with an extension), so performance is likely to be poor on mobile devices, which are relatively underpowered compared to Windows PCs. Left-click: Start moving Right-click: Change start positionHThis example is suitable for use in an Advance Wars / Fire Emblem clone.EvOb  ObstacleASprite"NodeList0TSLStartSprite PathfindingSprite  PathArray0RRA MapArray0RRA ObstacleBSpriteGroup.Generic 1SpriteZ !InfoBoxASYSMoveZoneSprite:EvEdEvTsEvLsEvCs!DNE!#% ( &'2* +,.AStarm{׻kϻ[ǻwwwcccSSSCCC333oSKC;{3k+Ww#G_7K'3 kWCw;k3_+S#C7g+K 3ssccSSGG;;33s++_##K7#ۧϏ{gWG7{+osccW WGK;;//ssKK##kS;#ۻÓoG#gc[WO;/s_K ;CϳÛscSwGg7W+K#ߧϏwwggSWCG3;w'/g#[K ; +ӃkgSK73# o_SC7'{cK7'o _##'#'#'#'##skkSS??ۧןϓLJsgߏ[ӃSsKgCW;K3?+{3#o+_OC3 '{k_OC3' w?? Grid  ObstacleA  4ZCostc Movement #122"NodeList  Movement #1List kclist.mfx%Y(PArial^Start -4 CurrentNodeMoveXMoveYMoveDirPath Movement #122222222 Pathfinding 4XStartYStartXOffsetYOffsetXCurrentYCurrent CostToHereMoveDir TileWidth TileHeight MapWidth MapHeightMaxRange PathCostTileCost DistTargetXTargetYTargetPath Movement #122  PathArray   Movement #1Array KcArray.mfx%Y$$ MapArray   Movement #1Array KcArray.mfx%Y$$ ObstacleB 4ZCost Movement #122!InfoBox  Movement #1Active System Box KcBoxA.mfx%Y@@"ArialActive 4XTarYTar Movement #122 pppppppppp? @(),0 ` @` ` @ @ ` ` `` ` @@`   ` @! " #@% `* /12`38`+-4567;<`=>?`@`.& '$Evts*h|l%"ArialBoldh|l%"Arial(hu|l%"Arialh*)|l%"Arialf ~n&Setuph 4|l%"Arial* > 2&  > 2&   <-Obstacles " *-Obstacles p ^ &  &   S + f ~n&PathfindingBh  |l%"Arial   .  2 : 2" : 2"  6(  6(   b   .  2 : 2" : 2"  , 2 6(  6(   <-FindPathf h  |l%"Arial  *-FindPathf, 1  X "U"V-000000 00   00  8- Path ` b -0   ` b -1   h |l%"Arial: &- Path, 1 t 2\"T    d 2L"T   l 2T Z    ""X h |l%"Arial &- Path, 2 , 2 , 2 :-Subloop , 2 , 2 , 2 :-Subloop , 2 , 2 , 2 :-Subloop , 2 , 2 , 2 :-Subloop  (-Subloop x Z       b - 99(  ,4(   J (-Subloop 2 x Z       2x)  V Z    `1 =H- Z     (-SubloopB  2 (  L (   L (   N (    N (     2      :"V,- 00000     00    00    b 4-  (  (   b 4-  (  (   h |l%"Arial : &- Path0  2 0  2 $- Path9b &- Path8 "W  $- Path9h |l%"Arial!  4! &-Cost:  Z    /Path:  Z    /Loops:   f ~n&Movementh |l%"Arial  .  2 $  `1 =H- Z    , 2 "# , 2 h |l%"Arial @  $  .  2 .  2 <  2" > 2&  > 2&   , 2 "$ , 2 h ! |l%"Arialn "!$  .  2 .  2 <  2" h 2P   4&  ,  2 h #"|l%"Arial $#$  .  2 .  2 \ 2D     Zx 2`     Zh %$|l%"Arial &%$  .  2 ^P   L! 24  h '&|l%"Arial ('$  .  2 ^P   L! 24   )(Rems Start moving the object Stop movingMove towards next nodeSelect a direction to moveMove horizontallyMove verticallyStore obstacles in map array. In practice, you'd most likely do the exact opposite (load the obstacles and other map data from an external array file, created using a level editor), but obviously we can't demonstrate a pathfinding procedure without a map... Set start position and find pathStart pathfinding1Get current node position and distance from startCheck if adjacent squares are within range, have not been visited already by an equally direct route, and are not outside the bounds of the map - and then add to the list of squares to be visited. 8Stop searching if the list of squares to visit is empty.! Show info((by Adam Hawker (aka Sketchy / MuddyMole)Pathfinding ExampleThis example is designed to be compatible with the majority of exporters, including Android and iOS, for which no pathfinding extension is available at present. However, pathfinding is very CPU intensive (even with an extension), so performance is likely to be poor on mobile devices, which are relatively underpowered compared to Windows PCs. Left-click: Start moving Right-click: Change start positionqThis is an implementation of the A* (AStar) algorithm - suitable for highly efficient point-to-point pathfinding.EvOb  ObstacleASprite"NodeList0TSLStartSprite PathfindingSprite  PathArray0RRA MapArray0RRA ObstacleBSpriteGroup.Generic 1SpriteZ !InfoBoxASYSActiveSpriteEvEdEvTsEvLsEvCs!DNE!#% ( &'2* +,.08 ACHK <@DHT`\dlv) #default#itDz 9.0.124F1.0com.clickteam.runtimeā1.0"com.yourcompany.yourapplication]SimplePathfinding1.0.0.01.0.0.0