#l嶳 dCe(hdd ( @ (//(  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 $%&&'%($!)* ##  !"#     ??dIay@$wall_sp  4xs5a3 b(fdH@QhQ4F(Ehawalk_r   Vx1R0PQrrzN)2))Se!!G]8GH)jF|ezZkwZa9dԦNåZ(YVari5߲ ћ;@U~V9%F1nJS2׎sE'GHM:>]~RR<K-,S (駇c1<6qX(H&[9ENaU!tf3IDq~zZT|'$iO@K-!Lt?*/% aK+Q Ĺ9s!p8?]BgZhHYEcDGXv&I?j Ux͔1n0 Eձ7رdoB)3v*(A#OѡY'i*|l>_D=v}}S"^Oը5: o;y8]N(b'#9s4ѨwUpdTaH[=<:@=?0$ZPkg]|N\9);^tB᱊C.6 cS%XnGA ״q/pvQr|yiEHa$ě/(޺@$+ 0k ⾘ӣ\sB!p:Nim@MrE";d$0J,E \x1R0EE \RRMz9Ƨˤb!!G]8GH)"YRe_Vj+{f0ñYoSoya=of`A-GPi+04qbU!6+i@>Tő2 #p/WSU mY刢)Erv3GŖ՞ 'xi(]-!gP"9 nJ< C%ͽ|_ĎAENl,b{AyT}P ”X8D[us@)]ѣa Y-B8sҎ%[RJFv!JvZwalk_l   Wx=N1M \RR֞!KRgd^=Goؠ]y+C:v?b(3F1> bg\Ȱzv}NǕ!g%D8/9xTKG\ͱ#f:꫶Eqț|q3k8bGs FJ y#JHU;%g97T#pzn!ǴiiL@rK4K3& 9%WW-2U @&~c]3N#DQg~K8Ҙa/}Z1 %v Vx=N0M \RRs +C[Rnr @#n9GҼ+e=s4I<8ڕ7W}i, q`XQtC{MiY05_n H %7 kGhQ" &Nu.Y|*NUAY9zd#FNtT=O.#_C,s'҄Ge$$S8V1s:9s|8|g= g{4Y$3|KÆB 4%W^k 5rt ,1 #2qN$"^Cޥ Wx͓1n1ELr'=t2e*69D$rMG1U"&odyؼ ca11 1nweEhY!qP!Jab9}e7ƙ )dkiBIL Wrxں-i>*_LGE9bGrqJRq+QJb0)/@ఱ%'$4sy>] ]#'ݎuSo}U1y $W)f8*9!W6g%H&O@|!%G6+G QSTJ#LOP!J] Kx1n1E27ؒrCSX{teT[8R8ґ#_,/,Z{1_/s`1giq}S&w'C#[5r$"xS_"Jk^*8=AHn)Fq`֩L1Y~  3Oi=I`S2ARr803!m˄3V=sU 0-1x_1Fs @i9aꂁ@Kɏ8\@yD"H"0O@|JN^+_B1tD*.R-@MTxstand_l   Sx1R0PQrVSeRRR1jC0G0]8GH)z'viЬ3[(Y߯C+\:\7 \f-/9x;"N1QM:H_ggݢo?"9}~} tr.AB.D#syM})9v$sEG3b#5'?yiIaG19048:E@1Cs9| iLpvaB }I1S'09 tW!tqT&> cF4:zfM};.v$L,1)_|stand_r   ^x=R0`QrrzN)2))Se!!G]8GHiO 猜߬֊68*w8nF{:vld,] uo'xFHtIe=5ud^Ю%ǙRl:Y댶 y⬄UҳNO[Q6Hq֮ oVgt-Rf }a0^ƉP˜'ESՈr'_q(E:h_>Լc]h|=,pK+::^DCXl!=NOw\"p:\"tK\[-[ʄQm+< ramp_l_sp@!? xֻ 0 а-PGhLE"=N'ٕȱnX{֞Sϡ<^?8{WwOt"rKg#98y?ZϑG3|%rΆt0Sa? E7_ /_|qCs  steep_r_sp ! x 0 C15gFa +BoH_7t|q)T+UK5R_ܳs]I+SE?-tMQt IKy_H*$P#9E&W+LKaU sMA (8Wl媁simple_platforme// Simple platform movement code // Oliver Broad 2004 // This code goes in the End_Step event // // First test if a collision occured // Note this version should be more reliable in games where // collision events can modify speed and direction // however it may lead to slightly inconsistant collision handling // x=xprevious y=yprevious if place_free(x+hspeed,y+vspeed) { x+=hspeed y+=vspeed } else { //Move horizontally, testing for contact if hspeed<>0 { move_contact_solid(180*(hspeed<0),abs(hspeed)) if not place_free(x+sign(hspeed),y) { hspeed=0 } } //Move vertically, testing for contact if vspeed<>0 { move_contact_solid(90+180*(vspeed>0),abs(vspeed)) if not place_free(x,y+sign(vspeed)) { vspeed=0 } } }  ramp_platformvar y1; //Roll back movement //This is necessary as GM may or may not have carried out "Solid" behaviour x=xprevious y=yprevious //Check if we're on the ground if not (jump or place_free(x,y+1)) { jump=false //We're on the ground so check we haven't just walked off a cliff y1=abs(round(x+hspeed)-round(x)) if not place_free(x+hspeed,round(y)+y1+1) { //Search for the ground level x+=hspeed; y1+=(y1=0) y=round(y+y1) move_outside_solid(90,y1*2) //Roughly set vspeed for the benefit of any AIs that may use it vspeed=(y-yprevious) //Check if we hit a wall. if not place_free(x,y) { x=xprevious y=yprevious if hspeed<>0 { move_contact_solid(180*(hspeed<0),abs(hspeed)) } hspeed=0 vspeed=0 } } else { //Lookout!! Cliff!! // vspeed=0 //Just move out horizontally move_contact_solid(180*(hspeed<0),abs(hspeed)) jump=true } } else { //Freefall code //check for no collision at all if place_free(x+hspeed,y+vspeed) { x+=hspeed y+=vspeed } else { //collision so find out where //Move horizontally if hspeed<>0 { move_contact_solid(180*(hspeed<0),abs(hspeed)) if not (place_free(x+sign(hspeed),y) or place_free(x+sign(hspeed),y-2)) { hspeed=0 } } //Move vertically if vspeed<>0 { move_contact_solid(90+180*(vspeed>0),abs(vspeed)) if not place_free(x,y+sign(vspeed)) { if vspeed>0 { jump=false } vspeed=0 } } } }wall  simpleplayer  kaction_set_gravity2700.5000000laction_set_friction0.10000000]Create some flags0000000cmovingfalse000000cdir0000000]Assign images to an array0000000[Bsp[0,0]=stand_l sp[0,1]=stand_r sp[1,0]=walk_l sp[1,1]=walk_r 0000000cjumptrue000000conplat0000000]#If we're not pressing left or right0000000cmovingfalse000000]!A simple platform movement script0000000Yaction_execute_script 70000000c sprite_indexsp[moving,dir]000000'daction_if_variablehspeed6100000action_if_collision01000000faction_set_motion0100000000000000faction_set_motion00.5000000cmovingtrue000000cdir1000000-action_set_alarm40000000&action_if_collision01000000faction_set_motion9010000000cjump1000000%daction_if_variablehspeed-6200000action_if_collision01000000faction_set_motion180100000000000000faction_set_motion1800.5000000cmovingtrue000000cdir0000000-action_set_alarm40000000ramp_l  ramp_r! steep_l" steep_r# room1         u @`@``'@( )*+,-.`/@0 123456`7@8 9`L`M`N`l@m@o@p`q`r x y@z@{ |} @``@ `  ‰@É`ʼn`Ɖ`lj``ȉ`@ɉ` ʉ`ˉ`̉`͉`Ή`ω``Љ`@щ` ҉`@Ӊ` ԉ؉ ى ډ@ ݉   @` @ @ @`` @ `@   @  {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Arial;}{\f1\fnil Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\cf1\lang2057\fs24 Really simple platform example \par \par Controls are \par Left and Right: Move left and right \par Up: Jump \par \par Oliver Broad 2004 \par \par May be used without credit \par \lang1033\f1 \par }  Spriteswall_spplay walk_l walk_rstand_lstand_r ramp_l_sp" steep_l_sp! ramp_r_sp# steep_r_spSounds BackgroundsPathsScriptssimple_platform ramp_platform Data Files Time LinesObjects ramp_lsteep_lsteep_r ramp_rwall simpleplayerRoomsroom1 Game Information Game Options