MMF2horror grid game@D:\Wszystko z pulpitu\Wszystko z pulpitu #6\horror grid game.mfa4(@0PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP=}=}=}PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP=}=}PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP=}=}=}PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPATNFAPMSASUMAGMI """)))UUUMMMBBB999|PP3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f333f3333f3ffffff3f̙3f3f3f333f3333f3ffffff3f̙3f3ffffffffff!___wwwB00 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}D 1U4_ Mk"8X )Th{> ){~L3jخvQ) 8WeO1  $&''&"  xAxAxAx㐂pppX$Ү0QqMAxhHÀiUUuUax`〆4YY8u$hu8U488puUQӎ0Ӽ<<$`axMUm)s͞c  `[  q= P2pO-AhppqmEumx4QӮqP+AfAA#لȡfnQ+Aƍ) ȣuv] m*}H3AF+c*u\nG}F!A&isCDu`ACA&|¤Dƶ u:A&lB!ģ6ŤSu uA\`Aƕtce.,covپ/+A&B,Ƕ+|4P+A>&ʝ)SP+A>'c$kɶNP+A>R*Ƕɥ29P+A>ρ>ρ+ 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}Lv !!              !"! \f RRR IIIe([  T x=}=}=} =}0=}0=}0=}0=} =}B=}B=}B=}B=}=}0B =}l=}!1Xֽց;ؤvއxVUָٽU΃Ut|ܽ1?BZޅ]J1z֍Y>!|!θk_Ŝ_)sRRޓ7{_xθ֞)sYcSxY[?X͜^)uv67uUVŜ9!|ƃؾUVﴽ9_]k|k?!y=!!c[y׽Xބ7uwuu7پVV{[Z΃u*ҔƁپ[:·u]Q*Ҕپﳽս9{:΃m]Q*Ҕپھkﳽa[:΁mEQ*Ҕھƻƻ {:΁m=0Q*ҔƏ5ƼA{Z:m=0Q*Ӕƒ 9=5$!HBZ:uu]e<0 !ӔƌE!=vA:΁4I(!sΒz?Z:04,M(e!ӔΎ޽?{A6:[ׇP4,M(e!Ӕւ ?:ьD!:[{|ׂP4,M(e!Ӕ΁߇6_Zσ::{|}߃Q4,e!Ӕׂ=>[::[|ߜ}߆}Q4e!Ӕ=ׂ=^>_[:[{|ߝ߽灞}߄]3e!Ӕ]ׂ]^~^>_UƜ}߅׭_>?5;\]}׃_? `* ҤҜҜҤҜҜҤҜҜҤҜҜҤҜҤҜҤҜҤҜ򤑜ҤҜ󤑜ҤҜ󤑜ҤҜ󤑜ҤҜҜҤҜҜҤҜҜҤҜҜҤҜqqҜqqҜqqҜqq󤲜Ҝ󤲜ҤҜҜ󤲜ҤҜҜ󤲜ҤҜҜ󤲜ҤҜ򤑜Ҝ򤑜Ҝ򤑜Ҝ򤑜ҜҜqqҜqqҜqqҜqqҤҜҤ3ҤҜҤ3ҤҜҤ3ҤҜҤҜҤҜҤҜҤҜ򤑜ҤҜ󤑜ҤҜ󤑜ҤҜ󤑜ҤҜҜҤҜҜҤҜҜҤҜҜҤҜqqҜqqҜqqҜqq󤲜Ҝ󤲜ҤҜҜ󤲜ҤҜҜ󤲜ҤҜҜ󤲜ҤҜ򤑜Ҝ򤑜Ҝ򤑜Ҝ򤑜ҜҜqqҜqqҜqqҜqqҤҜҤ3ҤҜҤ3ҤҜҤ3ҤҜҤҜҤҜҤҜҤҜ򤑜ҤҜ󤑜ҤҜ󤑜ҤҜ󤑜ҤҜҜҤҜҜҤҜҜҤҜҜҤҜqqҜqqҜqqҜqq󤲜Ҝ󤲜ҤҜҜ󤲜ҤҜҜ󤲜ҤҜҜ󤲜ҤҜ򤑜Ҝ򤑜Ҝ򤑜Ҝ򤑜ҜҜqqҜqqҜqqҜqq;([=}=}=} =} =}=}T=}  jPPPPPPPP΁PPPPPPPPP΁PPPPPPP΁PPPPPPPPP΁PPP΁P `  @0PP P PP PP PPP P PP PP P*PP PP PP PP PPP PP PP PP PPPPPPPPPPPPPPPPPP PP PPPPPPP PP PP PPPP PP PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPP PPP PPPPP P PPP PPPPP P  PPPPPPP PPPPPPPPPP PPP  P PPPPPPP P΁PPPPPPP PPPPPPPPPPPPP=}PPPP PPPPPP=}PPPP PPPPP΂P P=}PPPP PPP PPPPP PPP΂P PPPPP PPP΂PPP PPPPP PPPPPPPPPPPPPPPPPPPP PPPPP PPPPP PPPPP P P P PPPPP PP P PPPPP P PP PP PPPP PP PPPPPPPPPPPPPP PPPPPP PPP PP PPPP PPP PPPP΂PPPP PPP P PP PP PPP P PP PP PPP P PP PP PPPPPPPPPPPPPPPPPP PPPPPPPP PPP PPPPPPPP PPP PPPPPPPP PAGMI{׻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' wD:=(*46- “5Õ:Õ:Õ:B99~kvJ9jƙ9Õ:Ė;l-ؿٿ޾'.AVQk8H=<޶͠}9-3 ʘe %%0B:cj⼢}8-3O"r_YjV|Nx>-4ȗs%]ebRܽui9|C6JЩ[;-3ėOnt'ʣտuΕ؜ʔtM-3ř+{!Ȟ7ٶqlF-3Śmɘ-߳J· vVps \&-3s)ͧ0ԬsƼgeg}ٿz6-3ǝ Ț/ЧaDִ9۴\z|8-3Ɲ Sg2ß}O;ֱ|8-:Şe<Ϣ Ǟ1խZHضq|7-͕ʼQǦ5Ш:ر@ЭI޺Mƺ|7. ШΛy2G7ϏWWWWWWWWWWWWWW'_ggggggggggggGod WWW:::QQQ:::zzzQQQQQQ癏㷇ݗ}d:::::::::ֈFFF---ۭǽm,dvvvqqqzzz:::ۮ&&&zzzLLLbbbqqqWWWݙdlll:::𔔔:::vvvWWW&&&\\\zzz󔔔񳏿DdFFF&&&\\\@@@:::ggg::::::bbb&&&WWWϑχݎdFFF---:::::::::333:::::::::::::::pMK    X du dccccccccc d dOu @\ d  d333333333 u   SSSSSSSSS KKKKKK!?5[  T"! '  6# {5T  [$! 6  '->5[  T ! 6  ' /! '  6 5T  [ K-ȁȁȁȁȁ dhorror grid game@H2@D:\Wszystko z pulpitu\Wszystko z pulpitu #6\horror grid game.exe&(%' &(%' &(%' &(%' &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  kclist.mfxList%Y KcArray.mfxArray%Yultimatefullscreen.mfxUltimate Fullscreen%Y pathfind.mfxPathfinding object%Y ForEach.mfxForEach%Y 0Turn-based Pathfinding@{׻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 @ Wall 4ZCostc Movement #122 NodeList   Movement #1List kclist.mfx%Y(PArialZPlayer 4 MovetimerPath Movement #12222 22 22  Pathfinding  4XStartYStartXOffsetYOffsetXCurrentYCurrent CostToHereMoveDir TileWidth TileHeightMapWidth MapHeightMaxRangePathCostTileCostPath Movement #122! PathArray  Movement #1Array KcArray.mfx%Y$$!MapArray  Movement #1Array KcArray.mfx%Y$$Vine  4ZCost Movement #122MoveZone 4  Movement #1  " Ultimate Fullscreen Movement #1Ultimate Fullscreenultimatefullscreen.mfx%Y detektor4 Movement #122 Active 24 Movement #122ObstaclePlacer4 Movement #122 Enemy target4 Movement #122Farmer4UpdateRequiredMoveXMoveYMoveDir StartMovingTrappedPath Movement #122!22"22#22$#Pathfinding objectG Movement #1Pathfinding object pathfind.mfx%YHH dd?z??z??z??z?$ForEach  Movement #1ForEach ForEach.mfx%Y pLight pppp p ppppp[p(@@p ``0@ 0 ` 0 `` `P 0pP ````p p!@0"@ #@%p*01p23:`9``ppp)0+@,0-0. /`0`4`5P607 8;<=>? @0A0`BCDPEp`F @G@H@I J0`K@PLMN@`OP `Q R\]P{ P0T0U& '$~S EvtsG"P""T "= f ~n&Setuph 4|l%"Arial <-Obstacles  Y*-Obstacles p!^ &  &   S +S + f ~n&Light pathfindingh |l%"Arial  $   > 2&  > 2&   <-FindPathf h  |l%"Arial   $  : 2" : 2"  6(  6(   <-FindPathf h  |l%"Arial  *-FindPathf  *-FindPathf!X  U V- 00 ,  00  8- Path `!b -0   `!b -1   h |l%"Arialv &- Pathd 2L T   d 2L T   l 2T!Z    " X > &- Path6(  6(   "$ h |l%"Arial &- Path  "# ( &- 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  $- Path9 f ~n&Movementh |l%"ArialRegularne  * h !|l%"ArialRegularne| u  <-velocity *  h #!|l%"ArialRegularneZ p" ( & % '$  $  .  2 * , 2   <-FindPathf  Z o# & ( % '$  $  .  2 * , 2   <-FindPathf  Z n$ % ' ( &$  $  .  2 * , 2   <-FindPathf  Z m% ' % ( &$  $  .  2 * , 2   <-FindPathf  h (&|l%"ArialRegularne )[   * h *(|l%"ArialRegularneN q)*-velocity$  $  2$  N r**-velocity$  $  2$  N s+*-velocity$  $  2$  N t,*-velocity$  $  2$   /-.  2 ,! 2 B l.$  $   , 2 , 2  0/f 10~n&Enemy pathfindingh 21|l%"Arialp 32:#[    8$P-LoadObstacles 6 43:$-LoadObstacles j#j$  $   S +h 54|l%"Arial 65 >0  >0  , 2 8- move  76   S +j#j$  $   , 2 , 2 h 87|l%"Arial 98  0  0   b#j     , 2 , 2 h :9|l%"Arial  ;: > 0  > 0  , 2 , 2 h <;|l%"Arial  =<.  2 .  2 .  2 .  2 *1 =-4$P-FindPath h >=|l%"Arial  ?>6$-FindPath V#U$  $  V#T$  $  #Qh @?|l%"Arial  A@6$-FindPath # , 2 h BA|l%"Arial  CB6$-FindPath # , 2 , 2 <-SavePath h DC|l%"Arial& ED*-SavePath: *$P FindPath#WZ1 =B- #[  h FE|l%"Arial GF*-SavePath# (-SavePathh HG|l%"ArialJ IH.  2 .  2 .  2 V 2>  4&  h1 =P-   , 2 h JI|l%"Arialj KJ.  2 .  2 , 2 j LK.  2 .  2 , 2 j ML.  2 .  2 , 2 j NM.  2 .  2 , 2 h ON|l%"Arial@ PO&- move.  2 ,! 2 2$  @ QP&- move.  2 ,  2 2$  @ RQ&- move.  2 ,! 2 2$  @ SR&- move.  2 ,  2 2$   TS.  2 , 2 h UT|l%"Arial~ VU$  $  , 2 n ZV$  $  , 2  WW*\X > 2&  > 2&   <-FindPathf RemsStore 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.To avoid the need for any more detectors, the pathfinder object itself is used as a detector - be sure to resize it to match the size of your grid tiles. Pocztkowe ustawienie detektora.OStartowanie ptli przemieszczenie. Ona odpowiedzialna jest za szybko obiektu.Wysyanie detektora.Resetowanie pozycji detektora gdy zachodzi na to. Jeli w grze ma by jaki obiekt aktywny, ktry ma by przeszkod trzeba doda zdarzenie take dla niego.Przemieszczenie obiektu.Initialize mapPlace obstacle and mark all attackers as needing to update their path (to make things easier, the path will actually only be updated when they are aligned to the grid)JRemove an obstacle, and mark all attackers as needing to update their path Set position of objective Start finding a path Set start and destination points |Mark attacker as trapped if no path can be found - this way, we won't attempt to find a path again until the map has changed (Start saving path in an alterable stringSave next point along pathFinish saving pathFind next direction to move Start movingMoveDestination reachedEvObWallSprite NodeList0TSLPlayerSprite PathfindingSprite ! PathArray0RRA!MapArray0RRAVineSpriteGroup.90SpriteZMoveZoneSprite:"Ultimate FullscreensFwU detektorSprite Active 2Sprite ObstaclePlacerSprite  Enemy targetSpriteFarmerSprite#Pathfinding objectHTAP$ForEachAEOFEvEd !!"#$   EvTs EvLsEvCs,!DNE!@#% 08 ACHK'(? <@D