A couple of notes regarding the previous posts. (These are from experience working with live code and have carried through many versions of LiveCode.) If I am wrong or the latest versions have changed the rules, anyone is welcome to correct me. But this is what I have noticed:
1. In general, the set command (i.e. set the loc of image "enemy1" to tX,tY) is better than using the move command. It is more instantaneous (no delay). You can read more in the dictionary. This is especially noticeable with images because of the greater pixel density.
2. The intersect command sometimes needs a 3rd parameter (i.e. intersect(image "enemy1", image "player1", 255) as a number or something like "opaque pixels". See the dictionary for more details. It used to be required but later versions of LiveCode has made it not always needed.
3. It is better to use a button or other object than an image. I think it is because an image can have so many more pixels and is harder to check (and move for that matter). Create a button. Then note the ID number of the image and set the icon number of the button to that ID. It produces the same visual effect but seems to work better in the code.
This also has the advantage of easily changing the "look" of the button by just changing the icon # on the button. You can have your character change into something else (change the ID from an image of a turtle to that of a rabbit) or add visual effects (change the icon to the image of an explosion, then quickly back to the original image so it "flashes" briefly) and other neat effects that you might come up with.
4. When you jump to another card, make that "go to" the last bit of code in that handler. Otherwise the handler will finish up executing and trying to move objects that are not on the new card. As an alternative, you can "exit" the handler right after the "go to card "x". (This is good if you have multiple go to's in the handler.
5. I generally do not like using too many "send" message commands because they sometimes come back to bite you. (You go on to other code and that message is still out there to execute or it continues to keep sending messages when you don't want it to.) You should add a flag (boolean variable) and check it in the code that sends the message. That way you can stop the messages from being sent when you go to a different card.
6. Sometimes a message has to be 'cancelled'. See the dictionary for the cancel command and there are code examples at the bottom at this link:
https://sites.google.com/a/pgcps.org/li ... ng-targets
I hope this helps you and sort of explains a bit more about how LiveCode works