Xҧps[T@nVKMX ( @ (//(  0/80@0?/8 0( ?G@POWOXOP?H0@/7@O_``h_hPX 0(P_oppxow_g@O/8'' 7p`o?G/7 0??H/8`/o?GOX@H0?/pOW?H/8 7OP?G/7( P0@PX@O0@ 0O @H/@' 00@@P0?'_OP@H( 7/7' ^^^^^^^^^^^^^^^^^^^^^^^^^^TeeBBBBeTT^^^^^^^eBDJ33333JJDBeZ^^^^TD33==#####==3JDBT^^^^eJ=###=3DeZ^^TB3# #=3JBZ^^T3#  #=JBT^^J# Sll #=JBZ^T# %,68??86,/@A*< ##45('.6787-9%:;*<=#$+&,--.,/01)2 3 $%&&'%($!)* ##  !"#     ??d1@ spr_block1mlE x=@as E BR #p $$$@8 {~Zo%vRZ*̷2e-w/ozJ VJ62k맗%*y"2">|e}( ˈWQQ *R@'RO>2>v}\d\|88*=qqSZd@|(( Y>JV}胭Dl%`+[>JV}胭Dl%83O*|2ۨ'C%o*yLd3"3TJ&>2()hˤWRI%RIA&LadJ>QdB+uD ]&RO&@J>YeB( 3 e6>T?lJ'?**m|ćJPJ;>TQ:R}C%c.*) P@i؇JJB>TRR|$CA%*u+PC܇JMJN>TrnȬهJ2@>Tڿʝer]Pyn@V OA&Of`>q:eBR 샯$ SIL&L*_%>J2i}le)L#d*3ϸt>}Jn2+9Ls!Cs[% d֖ spr_block2mlE (x+nPqwUPaXYP@UvUyH,*)C^'83y|a,寷~Ne2|>ڿ_\_MI}M+h7˼=Ҥ^3PH)ϱ̚R 5me>25>jJ}jd}˴*9iRr'3îgDf܇Qɼϸ a*Zb%>2>dJ|8d|p )ᖑTiViPRђ9+೪ sBIGg&3`ʤLl|>VdؒcQ&]>eIƗ?/>^eAƦO>hD+>1e=|"t2J;UzQ?3Lu0>#2J|dT\p+9Sr#)#GKUɅ q4r%>2J}Ȑ((3dǺL'%`2MJ>d*|ɜU,2J>)}RJfM'edD}RYF'e:e}RfH'edX|RL'ee|RE'ee|R]'ed}RFT'ed|RFMO(ˬ Y ̛OI`STY TY's'Lo%hJd}|(dLfǖI|%2d>Je}pȰ*aWr(#VFȇOɹRq@2j>}Jd}ꕂ@l+;TJ} RfOFspr_man   xsecf3 b bF &LЀ@@.^mM LY M]5ő\ HBPYd3\@ P Je9L*p*L+@d`UQG(26 msk_block1ml(E vx=NBaD]XZkco.܃q"/;L@3w}i{ܽ{߽;?$mf+n Q;&xsfb ?SMgϲz'6|Ԇ|||fO_O'__x_%g*3gp!? 傟8#?ɥ~J!XKp~bO,z8?T'R=XKp~bO,z8?T'R=XKp~bP~bɇҥ.ˉߜKl=?Yk\Ŵj &tSYj|I,^|-v)>yHK]<§:`i[9Zڪ?>awmב%3>[`[{S5k 7-9t+4Bkf B0 + B0 + B0 + B0 + B0 + B0 + B0 + B0 + B0 + B0 +OREAD_THISmsk_block2ml(E xA0D[d XOg-kn 3a*g$RB1߾[__׏>moC~?ĜFF7ӳ]O}= k&+iD5~fFZZOT3-'N'mEl&W3Wgެggg:53'gH~R~L(Οp 8˙mw[!m7߻ݞ]P:B&1)Oo9CfSCLW7áW5OCz 3 #@!%f9sybroTf;ug<;ۙΙ96a3M62n渟e6?tS--݅䮹޽+\3u~L11%_afܻ_㐽!?~p[rrX$GHW.bkio39?CS=qƘyY̾ݏԌ|o&3CTfR[꧗Mt鱇Dr\Zv$r!~ηD%}>2SLK䁾CScir=JH#~Z-am㳭|ڐ~"X5%83Ғ|mI>%$r~β$~Z,v?G-GuI?5.Ig"44  }C!@_`W0+  }C!@_`W0+  }C!@_`W0+  }C!@_`W0+  }C!@_`W0+^cpmsk_man   6xsecf3 b bF &L@1e1x0eG("  set_iso_depth[ //NOTE: my_y is like sprite_yoffset; however, due to the inability to change //the sprite_yoffset during gameplay, a user-created one must be made. It would //be possible to change the offset using sprite_set_offset(), however that would //also change the object's position, which we don't want. //Args: //arg0 = character object //arg1 = y coordinate of the highest point touching the ground //arg2 = y coordinate the second-lowest point touching the ground /* IF THE LONGER SIDE OF THE BLOCK IS ON THE RIGHT (Notice the arguments): = = = = = = Example Block = | = = | | = = | | = | | | | Y Coordinate = argument2 ---> = | = <--- Y Coordinate = argument1 = | = = | = = --------------------------------------------------------------------------------------------- IF THE LONGER SIDE OF THE BLOCK IS ON THE LEFT (Notice the arguments): = = = = = = Example Block = | = = | | = = | | = | | | | Y Coordinate = argument1 ---> = | = <--- Y Coordinate = argument2 = | = = | = = */ depth=-y-my_y; if (argument0.xx){ my_y=argument1;}obj_man [ //This code works in the character's step event. You don't need to use the //script in this case. Just make sure that this code goes in the STEP event //and that his x offset is CENTERED and his y offset is at his feet (look at //the sprite properties) depth=-y;0000000[x=xprevious; y=yprevious;0000000[x=xprevious; y=yprevious;0000000([$//Movement. Disregard. x-=2; y+=1;0000000'[$//Movement. Disregard. x+=2; y+=1;0000000&[$//Movement. Disregard. x+=2; y-=1;0000000%[$//Movement. Disregard. x-=2; y-=1;00000002[*mp_potential_step(mouse_x,mouse_y,2,true);0000000Baction_show_info00000000 obj_block1 [ //Make sure you declare the variable. Also, notice the sprite and object //properties. The sprite is solid, it has a mask, the x-offset is CENTERED, //and the y-offset is ZERO. THIS IS CRUCIAL. IT WILL NOT WORK IF YOU DO NOT //HAVE THE OFFSET SET LIKE THIS! my_y=0;0000000[//Now we call the script. Yes, it's unfortunate that this code is in the step //event, however it is small and you can easily deactivate the object when it //is outside the view. set_iso_depth(obj_man,64,84); //obj_man will set the depth. His placement will depend on the depth of the //building. The next two arguments deal with the sprite's edges (see the script //for a visual aid).0000000 [//This changes the alpha. Nothing related to isometrics, so you don't need it if (image_alpha=1){ image_alpha=0.6; exit;} if (image_alpha=0.6){ image_alpha=1; exit;}0000000 obj_block2 [ //Make sure you declare the variable. Also, notice the sprite and object //properties. The sprite is solid, it has a mask, the x-offset is CENTERED, //and the y-offset is ZERO. THIS IS CRUCIAL. IT WILL NOT WORK IF YOU DO NOT //HAVE THE OFFSET SET LIKE THIS! my_y=0;0000000[//Now we call the script. Yes, it's unfortunate that this code is in the step //event, however it is small and you can easily deactivate the object when it //is outside the view. set_iso_depth(obj_man,84,64); //obj_man will set the depth. His placement will depend on the depth of the //building. The next two arguments deal with the sprite's edges (see the script //for a visual aid).0000000 [//This changes the alpha. Nothing related to isometrics, so you don't need it if (image_alpha=1){ image_alpha=0.6; exit;} if (image_alpha=0.6){ image_alpha=1; exit;}0000000room0BK         PXMYGame InformationX^{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Arial;}{\f1\fnil Arial;}{\f2\fnil\fcharset2 Symbol;}} {\colortbl ;\red255\green255\blue255;\red255\green255\blue0;\red0\green0\blue0;} \viewkind4\uc1\pard\qc\cf1\fs24 \par \b Perfect Isometric Depth Example\b0 \par By Polystyrene Man \par \pard \par \par \pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-200\li200\b Description:\b0 \par \pard Using one small script, you can have perfect isometric depth with your oddly-shaped structures. You are no longer restricted to cube-shaped structures and using the code \b depth=-y\b0 . \par \par \pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-200\li200\b Controls: \par \pard\b0 Either the \cf2\b arrow keys\cf1\b0 or \cf2\b mouse\cf1\b0 , whichever you prefer. Press \cf2\b SPACEBAR\cf1\b0 to enable alpha, then press it again to turn it off. \par \par \pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-200\li200\b How to use this example: \par \pard\b0 Everything is well documented. Go into the object properties, sprite properties, and script to see how it works. You should have no trouble implementing it into your isometric game. \par \par \par \pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-200\li200\b Credit: \par \pard\b0 Unnecessary, but appreciated. \par \par \par \par \pard\qc Any questions? Confused? My email \par address is jayvache@yahoo.com \par -or- \par Send a private message to Polystyrene Man \par at the Game Maker Community \par \cf3\f1 \par } Sprites spr_block1spr_man spr_block2 msk_block1READ_THISmsk_block2msk_manSounds BackgroundsPathsScripts set_iso_depth Fonts Time LinesObjects obj_block1 obj_block2obj_manRoomsroom0 Game Information Global Game Settings