When working with Alice, I often find it helps to be very creative and attempt to
visualize what the user will see when I finish a
small coding project. For example, to create a shadow effect as you mentioned in your post, try this example:
Create a world with a penguin, and maybe name it TheShadow. Immediately create a 2nd instance of the Penguin class and this time name it Kowalski or something (I'm partial to the film "Madagascar") - this will allow you to differentiate between the two Penguin objects you just created. You will note that only one Penguin object shows on the screen and this is because they overlap one another.... click on the first Penguin and move it to the left/right so that you can see both objects. Now click on TheShadow-object-penguin and change it's skin-texture property to NONE and it's color to BLACK - you now have a Shadow.
If you wish to have TheShadow follow Kowalski as he/she moves then you will need to first position it properly (lying flat on the ground or standing behind Kowalsi) and then simply set it's vehicle property so that it "follows" him.
Coding a program is not simple, it does take keystrokes
AND some thought
before we even touch the keyboard. You first need to
understand the problem you are attempting to solve (in this instance, create a shadow) and then use the TOOLS ( skin-texture and color) you have available to you to make it happen.
If Alice did it
ALL for us, then we wouldn't need to learn how to do it ourselves.
With that said, I would also like to see the improvements you have suggested.