[squeakland] Collision detection, only one object detects the collision

K. K. Subramaniam subbukk at gmail.com
Mon Nov 30 21:32:19 EST 2009


On Tuesday 01 December 2009 04:12:58 am Carl Cravens wrote:
> > What if the bullet does a "I'm not over the background" test?
> > 
> > But yes, in general Etoys is set up not to make things pretty but to
> > allow the principles to be applied directly.
> 
> My nine-year-old likes "pretty".  He wants to write Flash games, but
>  getting the tools set up on Linux to achieve "hello world" seems to be a
>  monumental task. :)
You have to make sure that your son is at a stage where he can handle thoughts 
like "If I were a bullet what would I do....?". Etoys can then enable him to 
translate those "whens" and "ifs" into a script. The goal here is not so much 
to create a full-fledged game but to motivate, enable and strengthen such ways 
of thinking. The output may look crude to people used to flashy (pun intended 
:-)) games but its author would have learnt many concepts in the process. 
Etoys is like dumbbells for brain cells.

In this particular case, create a uniquely colored marker morph (normally 
hidden) and have the bullet "show" it at a hit spot when collision is 
detected. Other objects can detect overlap with marker's color, hide it and 
then trigger an 'explosion' script.

Tip: do not use the test "overlaps color" directly in all scripts to detect 
collisions. Use a separate script "collision" for the test block and then call 
it from other scripts. When you decide to change the colors, only one script 
needs to be changed. A good opportunity to introduce the concept of "hiding 
implementations".

Subbu


More information about the squeakland mailing list