‘е—|$TчЭрйИ:мСddџО Ј( @€ЯаРПпрАяЏ  я(№/№/я(я рŸ 0№/8џ0@џ0?џ/8№ 0я(р п?Gџ@PџOWџOXџOPџ?Hџ0@№/7я@Oџ_`џ`hџ_hџPXџ 0р(пP_џopџpxџowџ_gџ@O№/8я'п'р 7№pџ€џ‡џ`oџ?Gя/7р Я€0?№€ˆџ?Hя/8р`/пo?G№OX№@Hя0?р/аpOW№?Hр/8п 7яOPя?Gр/7п(Я РP0@яPX№@Oя0@п 0аO а@H№/Я@'а 0п0@р@P№0?п'Я_OP№@Hр(а 7п/7а'Р Пџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ^^^^^^^^^^џџџџџџџџџџџџџџџџџџџџ^^^^^^^^^^^^^^џџџџџџџџџџџџџџџџ^^TeeBBBBeTT^^^^^^џџџџџџџџџџџџџ^eBDJ33333JJDBeZ^^^^џџџџџџџџџџџTD33==#####==3JDBT^^^^џџџџџџџџџeJ=###=3DeZ^^TџџџџџџџB3# #=3JBZ^^Tџџџџџџ3#  #=JBT^^џџџџџJ# Sll #=JBZ^Tџџџџ# %,68??86,/@A*< ##џџџџ45('.6787-9%:;*<=#џџџџџ$+&,--.,/01)2 3џџџџџџ $%&&'%($!)* ##џџџџџџџ  !"#џџџџџџџџџ  џџџџџџџџџџџ  џџџџџџџџџџџџџ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРџџџќџј№?рРР€€€€РРр№?јќџџџџРџdР)РYЯт@sprite0  &xœХUAТ ФЛ№шбєьxїMѕчHг@Т6PfЬРL…АYwCћz/Wc ѓц=Я‹ЛЅМ_ФчљŸad2F8„їѕPCMГƒЏы6јйДNГрUЩЋiУќЗM_рѓзДѕ-—hЇ™№е‡ЮѕWŒЭYЩўпKЈiНПУјЂ.R‚S йЎT›Ыd‘тьIЁ€ Nt…SЬmZм…ЯYAWЦљЋ%O5[ NЕдЈbр- ъoŠЛ ўШѓVЁ)јF}Ю№O‹є*žЈOјWІ^щЕиЭЧ(№Ћ•‰§.‚<6Лo|:uЈŒЅUђ‡*Q}8p‰ќ+c‘HRВФ™ћeяДЎ:єЋJ6іџЄёН Йsprite1  'xœэ”Aƒ EщОшВЫžРuЇћž)Н™GK•ˆ$A0A7iAyџз{И†УTSН/ѕnєby/тѓќ—3K#њmІWТЌ­ƒŸbоBіх.œOсXЧ1Є.ф{|9EЕгјŒE$xn]љ)ІlРq!dGОі–VDЯKЪŒmsъщ…gL#숕Џ$$|ЧПy 4]јdXЫПg J‚ћзk9;EШ%ф6шHQЭљЁ1џЅnItјod^ќb%сџХN‘FјбsœтZŠц‹уm‚ьžтвƒьfџFxн?JџЈќлљIЅD-џnx‘"ўЃ7іOп.б—;‡Ћ›_Hˆі8|• mYЗуpЉтЛj~М|лд6 sprite2  'xœХUЫТ ФЛрбЃ_аГунoЊŽ0<Т:fв™–†ЭЮfKЯэl|lюКЙыЏ“Й„ё}Џћd2Gи…ЕuŠ!–срћ~dО7ЌИдЫ|‚ЂН"yБlšџёвјгќ%m­G‹-кeОxРs§Хаœ•ь№дB,u~‚БE =pnHN-И]ЉЕ>мL.N’ˆ ЅLС0WaИЭсчЌдЉЬѓ7ržb>тj—)MШeс1tŠ*тр_.xJш9Ъ\TћGјŠ2‹ј„IGqЋЫО{ђ™;Ї^qiыЃРЏV§УЉ.’яњD™>ŽX‘угЎЎ2ˆEђ]•Ј†~z‹љ_‘ˆSBbхћТ6dЁюМЊbаџ_Ъ7яЗЄИєobject0Ўœџџџџџџџ Иgaction_set_hspeedџџџџ30000000џџџџџџџџџџџџџџџџџџџџџџџџџџџџИ[џџџџ show_info()0000000Иqaction_reverse_xdirџџџџ00000000џџџџџџџџџџџџџџџџobject2Ўœџџџџџџџ џџџџџџџџџџџџИЭaction_set_spriteџџџџ01000000И˜ action_ifџџџџ%abs(object0.x-x)+abs(object0.y-y)<1000000000ИЭaction_set_spriteџџџџ21000000џџџџџџџџ Итaction_if_next_roomџџџџ00000000Иоaction_next_roomџџџџ00000000џџџџџџџџџџџџџџџџџџџџџџџџobject4Ўœџџџџџџџ џџџџџџџџџџџџИЭaction_set_spriteџџџџ01000000И˜ action_ifџџџџ+sqrt(sqr(object0.x-x)+sqr(object0.y-y))<1000000000ИЭaction_set_spriteџџџџ21000000џџџџџџџџ Итaction_if_next_roomџџџџ00000000Иоaction_next_roomџџџџ00000000џџџџџџџџџџџџџџџџџџџџџџџџobject5Ўœџџџџџџџ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџИѕaction_draw_spriteџџџџ000-10000И[џџџџnwith object0 { if(abs(other.x-x)+abs(other.y-y)<100) draw_sprite(sprite2,-1,other.x,other.y) } 0000000џџџџџџџџџџџџЄroom0Room 0€рРРРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџАЁ†РаІ† Б†room1Room1€рРРРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ №А† АВ†P@Г†room2Room2€рРРРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ`pД†рРЖ†P№И†room3Room3€рРРРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџ€р џџџџџџџџџџџџрРЙ†К†0Л†РМ†М†€–˜ЎџџсЋ{\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fmodern\fcharset1 Courier New;}{\f3\fswiss\fcharset1 Arial;}{\f4\fswiss\fcharset1 Arial;}{\f5\fswiss\fprq2 System;}{\f6\fmodern Courier New;}{\f7\froman Times New Roman;}{\f8\fmodern\fcharset1 Courier New;}{\f9\froman Times New Roman;}{\f10\fmodern Courier New;}} {\colortbl\red0\green0\blue0;\red0\green0\blue128;\red128\green0\blue128;\red0\green0\blue255;} \deflang1033\pard\plain\f3\fs24\cf0\b Range \par Tony Forster June 04 \par \plain\f3\fs24\cf0 May be copied with acknowledgement \par \par Often you want to have something happen when objects are within range. In this program, the bear looks sad when the ghosts are within range. \par Press escape to close this screen. \par Press space to go to the next room, press F1 to come back to this screen. \par \par \plain\f3\fs24\cf0\b Room0\plain\f3\fs24\cf0 \par The range from object1 to object0 is calculated from: \par \par \plain\f3\fs20\cf0\b\i if(abs(object0.x-x)+abs(object0.y-y)<100)\plain\f3\fs24\cf0 \par \par \plain\f3\fs20\cf0\b\i object0.x-x\plain\f3\fs24\cf0 is the horizontal distance and \plain\f3\fs20\cf0\b\i object0.y-y\plain\f3\fs24\cf0 the vertical distance \par These numbers could be positive or negative so \plain\f3\fs20\cf0\b\i abs()\plain\f3\fs24\cf0 converts to a positive number \par \par The expression means "if the horizontal distance plus the vertical distance is less than 100" \par \par The range is not a perfect circle, what shape is it? \par \par \plain\f3\fs24\cf0\b Room1\plain\f3\fs24\cf0 \par This time the range is calculated as: \par \par \plain\f3\fs20\cf0\b\i if(sqrt(sqr(object0.x-x)+sqr(object0.y-y))<100)\plain\f3\fs24\cf0 \par \par the horizontal \plain\f4\fs20\cf0\b\i object0.x-x\plain\f3\fs24\cf0 and vertical distances \plain\f3\fs20\cf0\b\i object0.y-y \par \plain\f3\fs24\cf0 are squared \plain\f3\fs20\cf0\b\i sqr()\plain\f3\fs24\cf0 , \par added and \par the square root \plain\f3\fs20\cf0\b\i sqrt()\plain\f3\fs24\cf0 is calculated \par \par The result is a perfectly circular range. This is more computationally intensive and may be slower. \par \par \plain\f3\fs24\cf0\b Room2\plain\f3\fs24\cf0 \par The bear is only afraid of one ghost, why? \par \plain\f3\fs20\cf0\b\i object0.x\plain\f3\fs24\cf0 refers to only one ghost, the first one created, to respond to more than one ghost we will use the "with" statement. \par \par \plain\f3\fs24\cf0\b Room3\plain\f3\fs24\cf0 \par \plain\f8\fs20\cf0\b with\plain\f8\fs20\cf0 \plain\f8\fs20\cf2 object0\plain\f3\fs24\cf0 means that the calculation is done for all ghosts, see Gamemaker help for a description of "with" \par \plain\f8\fs20\cf3 x\plain\f3\fs24\cf0 and \plain\f8\fs20\cf3 y\plain\f3\fs24\cf0 now refer to each object0 and \plain\lang3081\f10\fs20\cf0\b other\plain\f3\fs24\cf0 is the bear \par \par \plain\f8\fs20\cf0\b with\plain\f8\fs20\cf0 \plain\f8\fs20\cf2 object0 \par \plain\f8\fs20\cf0\b \{ \par \plain\f8\fs20\cf0 \plain\f8\fs20\cf0\b if\plain\f8\fs20\cf0 (\plain\f8\fs20\cf1 abs\plain\f8\fs20\cf0 (\plain\f8\fs20\cf0\b other\plain\f8\fs20\cf0 .\plain\f8\fs20\cf3 x\plain\f8\fs20\cf0 -\plain\f8\fs20\cf3 x\plain\f8\fs20\cf0 )+\plain\f8\fs20\cf1 abs\plain\f8\fs20\cf0 (\plain\f8\fs20\cf0\b other\plain\f8\fs20\cf0 .\plain\f8\fs20\cf3 y\plain\f8\fs20\cf0 -\plain\f8\fs20\cf3 y\plain\f8\fs20\cf0 )<100) \par \plain\lang3081\f10\fs20\cf1 draw_sprite\plain\lang3081\f10\fs20\cf0 (\plain\lang3081\f10\fs20\cf2 sprite2\plain\lang3081\f10\fs20\cf0 ,-1,\plain\lang3081\f10\fs20\cf0\b other\plain\lang3081\f10\fs20\cf0 .\plain\lang3081\f10\fs20\cf3 x\plain\lang3081\f10\fs20\cf0 ,\plain\lang3081\f10\fs20\cf0\b other\plain\lang3081\f10\fs20\cf0 .\plain\lang3081\f10\fs20\cf3 y\plain\lang3081\f10\fs20\cf0 ) \par \plain\lang3081\f7\fs24\cf0\b \}\plain\lang3081\f7\fs24 \par \plain\f8\fs20 \par \plain\f3\fs24\cf0 \par \par \par \par } є єSpritessprite0sprite2sprite1Sounds BackgroundsPathsScripts Data Files Time LinesObjectsobject0object2object4object5Roomsroom0room1room2room3 Game Information Game Options