\< N:dd ( @ (//(  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 $%&&'%($!)* ##  !"#     ??dJ@sprite0  x1 { c֛q5#$ &~kN>m2a~(2#"CY1߰"%!*%YLp:jBiJVTB;<T4w>|wY '+3U 38>ߊ*TV~W$~?TľW-~Tfpdogleft xA EetߥkI G(~HH^b?]3b0yIG7Fkg:*-EF JXe|@Pt!3`!zACtF!=V5]lu>!LYR1ȿ-yK8*)ﲗELX/> <9WyC$UQRkR'goί=\<]R(N sprite2 x1 E7 LILz G(|@$ApgvK"wRzV[/Pxb\ B^M&0H)8%iwq@3܇ud 2EL3*ώwL!Ym&R 7!ZR;Bs/ bk|蓕|Ðo9̗WV(9)Q4 nonA4y;|"`GRnN^(,m~W߇|uFf= V.r$4VnWG}j}hdogright  _xM0 t \{z3VBIZ 7i&{c|sI:1oS#圵ۑ1Q"9O ^ǃ ^E0ٚ[NKm? J,=Ea19A \(M_2&Mkş*$$b>J||,i'\K fʖ_J79O.izǑMdV/K 0@= 'A(tTBȭL⒎2U¢v,o$(\[TJ44*lCOB/A'{ۧDLYs| s$Ao {HϏCX1}hobject0  object_solid e action_move 0000000101000000s action_bounce11000000s action_bounce01000000object_not_solid e action_move 0000000101000000s action_bounce11000000s action_bounce01000000 controller [ show_info()0000000(daction_if_variable room_speed1200000c room_speed-1000000&c room_speed1000000action_draw_text$"room speed = " + string(room_speed)404000000object5 gaction_set_hspeed10000000action_set_sprite31000000s action_bounce01000000room0Embedding of solid objects        F @` @`ˆ ̆@͆`ΆφІц҆ӆ Ԇ@Ն`ֆ׆ `@```````` `@````0@P@PP@P`@P `!p"@#@$P%@@&@P'@`(`@)`P*``+`p, - .0 1@2`345678 9@:`;; {\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fswiss\fcharset1 Arial;}{\f3\fswiss\fcharset1 Arial;}{\f4\froman Times New Roman;}{\f5\fmodern\fcharset1 Courier New;}{\f6\fmodern\fcharset1 Courier New;}{\f7\fswiss\fprq2 System;}} {\colortbl\red0\green0\blue0;\red0\green0\blue128;} \deflang1033\pard\plain\f3\fs28\cf0 Embedding of solid objects\plain\f3\fs24\cf0 \par \plain\f3\fs20\cf0 Tony Forster November 05 \par May be copied with acknowledgement. \par \plain\f3\fs24\cf0 \par Solid objects are put back to their pre-collision position before the collision events are performed. Once embedded, they stay embedded because they are returned to their pre-collision position which is also in collision. \par \par In this example, the solid purple balls embed but the non-solid yellow ones don't. Its got something to do with the order in which multiple collision events are evaluated because it takes 3 balls to embed. \par \par The dog demonstrates another way to get embedded. Changing the sprite or object in a collision event will cause embedding if the new sprite does not have exactly the same dimensions as the old one. Typically two complex shapes will collide and when the sprite is changed to the mirror image, some parts will overlap. You can usually turn off precise collision checking, making sure the bounding boxes are the same, to fix this. \par \par You can change the room speed up or down with the cursor keys in this demo. \par \par Quoting from Gamemaker help: \par \par \plain\lang3081\f4\fs24\cf0\i "There is a difference in what happens when the instance collides with a solid object or a non-solid object. First of all, when there are no actions in the collision event, nothing happens. The current instance simply keeps on moving; even when the other object is solid. When the collision event contains actions the following happens: \par \par When the other object is solid, the instance is placed back at its previous place (before the collision occurs). Then the event is executed. Finally, the instance is moved to its new position. So if the event e.g. reverses the direction of motion, the instance bounces against the wall without stopping. If there is still a collision, the instance is kept at its previous place. So it effectively stops moving. \par \par When the other object is not solid, the instance is not put back. The event is simply executed with the instance at its current position. Also, there is no second check for a collision. If you think about it, this is the logical thing that should happen. Because the object is not solid, we can simply move over it. The event notifies us that this is happening" \par \plain\f3\fs24\cf0 \par and \par \par For a collision event, "\plain\lang3081\f4\fs24\i it is checked whether two pixels in the current sub-images of the two sprites overlap..... if you are not interested in precise collision checking for a certain sprite, you should uncheck the box labeled Precise collision checking. In this case only bounding box checking is performed. You can also change the bounding box\plain\lang3081\f4\fs24 ." \par \plain\f3\fs24\cf0 \par }  Spritessprite0dogleftsprite2dogleftdogrightSounds BackgroundsPathsScripts Data Files Time LinesObjectsobject0 object_solidobject_not_solid controllerobject5Roomsroom0 Game Information Game Options