MMF2Sketchy's 360 Shooting GalleryC:\Adam\SketchyShootB.mfa4(@0QYQיQk `OSATNFAPMSASUMAGMI """)))UUUMMMBBB999|PP3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f333f3333f3ffffff3f̙3f3f3f333f3333f3ffffff3f̙3f3ffffffffff!___www+B00 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Ӯq~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-@ #e)s,c],c],c]Z}C !2 CsU4U4c"|u @u 2Z[ " Wwqŕt֕ޔUT΁ 74ΔW3TTTֆ744ΔӽWWt4U4θw7wWxw6WwxwW7wW7W7WqT3εT3ΖҽU֕Tt3ҽҽ7444ҽt޵twޒֵ޶ޗ޵޵wW焵ވ7wޘ޵ޘWqTTTδTUTuTT6t6޳5Ř7xwwww"7|7V b WWWqҽtttޔT3U4TWtTΔ֕WTֵT74TTw4tT֕4Tww6W6WwWWWWqu4TT5TU3T6Tҽņֲ֒w.z4  77Wx qut֕ޔ4TS44t tޗ6wu6Ww惘ޓ6uwW66xָ֑ޔ֕x6tT4և44T4ƖwwwW#9J #-ҽҽҽҽ ҽqޖW7tw76WWW7WWxwW6W776w6quֵӽƵTt΃޶ޕwUޗW67wVޅޘ7w#R| 1^% `O%7==%(Qk (J@Jhm@((((י QQQYQ( ((h(' 5@03 `O  +++99<99========    hQh (((Q(' {@0+% `O%>== Qk(((JQkY(']@0  `O5 2&  > 2&  > 2&  h"|l%"VerdanaRegularZ 6"V    Z 6"V    n"^6"V     ~"^F"V      N 26"V   h|l%"Verdana Regular.  2 "$  .  2 $  t#f-Pistol "V    /-"#  .  2 $  #- UZI l"V   /)"V    "# ! .  2 $  #-Shotgun "V   /)"V    "# "!.  2 ,#-Reloading...h3#"|l%"VerdanaRegular$# @ 2(  @ 2(  $ $ h%$|l%"Verdana Regular&%  Rems UZIShotgun#Instant rotation towards the mouse.Update bullet positions. Positions are stored in alterable values as this allows for a greater degree of accuracy, since alterable values can hold floats (decimal numbers), whereas the built-in X and Y coordinates can only hold integers (whole numbers).Default weapon.Jump to specific weapon. Next weapon.Previous weapon. Cycle weapons.Count down delays.Pistol (does not use ammo).Weapon Data. (Normally this would be loaded from an external file). X: Weapon Id# Y: Attributes... 0 = Shoot delay 1 = Reload delay ("0" if weapon is fully-automatic) 2 = Rounds per clip 3 = Ammo left in current clip 4 = Clips remaining ("-1" if ammo is unlimited)Reload weapon when the current clip is empty and there are spares (or if the number of clips is <0, in which case ammo is not needed). Also, add a delay while reloading. Display weapon & ammo status. Next frame...Fire bullets while left mouse button is held down, and no delays are in place, and there are rounds remaining in the current clip. Also, add a delay until the next round can be fired, and use 1 round of ammo. EvObShooterSpriteBulletSprite"Array0RRA#StatusBSYS#TipsBSYS#Tips 2BSYSEvEdEvTsEvLsEvCs!DNE!#% ( &'2* !Instant-Hit Bullets & Laser Beams@{׻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 ??Shooter 4 Movement #122Bullet4XPosYPosXVelYVelVelocity Movement #122 (("#$%&'(Obstacle Laser4 Movement #122+#Tips. Movement #1Background System Box KcBoxB.mfx%Y6ʀ"VerdanaTLeft click to shoot a bullet. Right click to shoot a laser beam (HWA recommended).#Tips 2@ Movement #1Background System Box KcBoxB.mfx%Y "Verdana*Press SPACE to move on to the next frame.ppppppK`@  `     @`@ Evts" h"|l%"VerdanaBold Italich|l%"VerdanaRegularx jXH;   hP|l%"VerdanaRegular ,2$ 6XS  , 2 , 2 J 22 S  Z 2B  S  "# 8- Move dh3|l%"VerdanaRegular&- Move$  @ 2(  @ 2(  $ $ h|l%"VerdanaRegular &- Move "# h |l%"VerdanaRegular  h" |l%"VerdanaRegularp  ,2$ 8- Laser h" |l%"VerdanaRegular$&- Laser$  NV,Q .@pA 6XS  h|l%"Verdana Regular&- Laser "# h|l%"VerdanaRegular  Rems Update bullet positions. Positions are stored in alterable values as this allows for a greater degree of accuracy, since alterable values can hold floats (decimal numbers), whereas the built-in X and Y coordinates can only hold integers (whole numbers).Check for hits. Stop laser. Check for hits.yExtend laser beam. Increasing the amount added to "XScale" increases speed (for a given distance) but reduces precision.#Instant rotation towards the mouse.It is strongly recommended that you use the HWA build of MMF2 if you intend to use laser beams, as the rotation and scaling of the laser will be very slow in the standard build.xCreate a laser beam while the right mouse button is held down. Using fewer loops increases speed but reduces precision. Next frame...1Fire bullets while left mouse button is held down. Also, give them an initial movement vector. Note that you can change the rate of fire by altering the "Restrict actions for..." condition. Also, make sure that the sprite's "action point" is correctly positioned - ie. at the end of the gun barrel. EvObShooterSpriteBulletSpriteLaserSprite#TipsBSYS#Tips 2BSYSEvEdEvTsEvLsEvCs!DNE!#% ( &'2* Gravity & Destructible Terrain@{׻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 ??Shooter 4Gravity_ Movement #122Bullet4XPosYPosXVelYVelVelocity Movement #122 Power" Movement #1d> #Background System Box! Movement #1Background System Box KcBoxB.mfx%Y"ArialObstacleU#Tips Movement #1Background System Box KcBoxB.mfx%Y3ʀ"VerdanaVHold down the left mouse button to increase power. Release the mouse button to fire.#Tips 2@ Movement #1Background System Box KcBoxB.mfx%Y "Verdana*Press SPACE to move on to the next frame.ppppppp K@{Evtsh|l%"VerdanaRegularx jXH;   h|l%"VerdanaRegular ,"Q hU|l%"VerdanaRegular  ,$  2$ D 2,P 333333?>6XS  , 2 , 2 J 22 S  Z 2B  S  "( "P "# h2|l%"Verdana Regularn @ 2(  @ 2(  $ $ fXD;    F  2. ?=h |l%"Verdana Regular  "( S +h |l%"VerdanaRegular   Rems7Increase shot power while left mouse button is pressed. Update bullet positions. Gravity is adjustable by changing the alterable value. Note that the rotation angle of the bullet sprite is re-calculated each frame. #Destroy terrain when a bullet hits.#Instant rotation towards the mouse. Next frame.../Fire a bullet while left mouse button is released. Also, give it an initial movement vector. Note that you can change the rate of fire by altering the "Restrict actions for..." condition. Also, make sure that the sprite's "action point" is correctly positioned - ie. at the end of the gun barrel. EvObShooterSpriteBulletSpritePowerCounter#Background System BoxBSYS#TipsBSYS#Tips 2BSYSEvEdEvTsEvLsEvCs!DNE!#% ( &'2* AI - Shoot At Player In Range@{׻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??Shooter 4TurnRate RangeToPlayer FiringRange AngleToPlayer FiringAngle Movement #122Bullet4XPosYPosXVelYVelVelocity Movement #122 #Tips Movement #1Background System Box KcBoxB.mfx%YNʀ"VerdanayMove the player using the arrow keys. The shooters will fire when you are within range and within 30 degrees of them.Player4 Movement #1&(2222222 2222222222#Tips 2@ Movement #1Background System Box KcBoxB.mfx%Y "Verdana*Press SPACE to move on to the next frame.ppppp KP PP@PEvts h"|l%"VerdanaRegular  2XS )(;    S    h      2          2;    S    h hQ|l%"Verdana Regular ,0  2 0  2 2$ , 2 , 2 6XS  J 22 S  Z 2B  S  h3|l%"VerdanaRegular @ 2(  @ 2(  $ $ h|l%"VerdanaRegular  h |l%"VerdanaRegular $  $  h |l%"VerdanaRegular   RemsVGradual rotation towards the mouse. The turning rate is stored in an alterable value. Next frame...Update bullet positions. Positions are stored in alterable values as this allows for a greater degree of accuracy, since alterable values can hold floats (decimal numbers), whereas the built-in X and Y coordinates can only hold integers (whole numbers). 1Fire bullets while left mouse button is held down. Also, give them an initial movement vector. Note that you can change the rate of fire by altering the "Restrict actions for..." condition. Also, make sure that the sprite's "action point" is correctly positioned - ie. at the end of the gun barrel. LThis just fixes a strange bug, where a bullet would sometimes appear at 0,0.Destroy bullets.EvObShooterSpriteBulletSprite#TipsBSYSPlayerSprite#Tips 2BSYSEvEdEvTsEvLsEvCs!DNE!#% ( &'2* AI - Shoot At Nearest Instance@{׻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??Shooter 4ID ClosestRange CurrentRange FiringRange ClosestAngle ShootDelayShooting Movement #122Bullet4XPosYPosXVelYVelVelocity Movement #122 #Tips' Movement #1Background System Box KcBoxB.mfx%YCʀ"VerdanazEach shooter will fire on the player nearest to them, provided it is within range (suitable for a "Tower Defense" clone).Player 4ID Movement #1&22#Tips 2/ Movement #1Background System Box KcBoxB.mfx%Y ""Verdana%Press SPACE to go back to the start.ppppp K  PP@p @ @ Evtsh|l%"VerdanaRegular h|l%"Verdana Regularv6" 2 6" 2 h|l%"VerdanaRegular , 2 h|l%"VerdanaRegular J-Loop Ao$  h |l%"VerdanaRegular (-Loop AoJ-Loop Ba$  h |l%"VerdanaRegular$ (-Loop Ba>  2$.Loop Ao>  2$.Loop Ba 2         rXP;     h |l%"VerdanaRegular (-Loop Ba>  2$.Loop Ao0  2 . 2 , 2S h|l%"VerdanaRegular~ , 2 8X  h|l%"VerdanaRegularh0  2 .  2 , 2  :-Loop C (-Loop C>  2$.Loop C.  2 .  2 2$ 6XS  , 2 , 2 J 22 S  Z 2B  S  , 2 h|l%"Verdana Regular ,! 2 h2|l%"VerdanaRegular @ 2(  @ 2(  $ $ h|l%"VerdanaRegular h|l%"VerdanaRegular$  $  h|l%"VerdanaRegular  Rems Next frame...4Fire bullets when a player object is within range. Countdown delay. Give each object a unique ID#.*Stop player objects leaving the play area.!Reset closest object information.Pick a shooter...Pick a player...QCalculate and store the distance and angle between the chosen shooter and player.~If the chosen player is closer to the chosen shooter than the previous closest player, then it becomes the new closest player./Aim the shooter at the eventual closest player.Update bullet positions. Positions are stored in alterable values as this allows for a greater degree of accuracy, since alterable values can hold floats (decimal numbers), whereas the built-in X and Y coordinates can only hold integers (whole numbers).Destroy bullets.This just fixes a weird bug...EvObShooterSpriteBulletSprite#TipsBSYSPlayerSprite#Tips 2BSYSEvEdEvTsEvLs EvCs!DNE!#% ( &'2* 08 ACHK|Q [ I<G@DHT`\dlv) #default#itDz