Thank you everyone (especially Deadeye); working with your advice I now have a working prototype � any suggestions on refactoring this into functions? I am a little thrown off by how functions work and could use some examples (wiki did not really clarify things for me)
Functions are best used if you are performing the same set of actions over and over again (as in multiple times per tick), or if you're constantly typing out the same bit of complicated math or something. They're also handy if you want to perform an action after a specific amount of time ("Call function after delay," which is what I generally use them for. I find that they're most handy in this manner).
It might help if you said exactly what you needed functions for. Just saying "I want to use functions" is kind of ambiguous. Everyone's event making style is different, so I really don't use functions all that often because I don't need to.
I have seen �detectors� mentioned here on the forums several times, could someone explain how they work briefly? My understanding is that they are objects added to a container � for use as path finding aids (checks for overlapping terrain etc) they are what I want to be using correct
Generally speaking, detectors are pretty much obsolete, because you can use "Overlapping at offset," which means you can detect collisions and whatnot outside the normal bounds of the sprite area. When you check for overlap at an offset, it basically shifts the entire sprite temporarily by however many pixels you indicate, checks for collision, then puts the sprite right back where it was.
I say "generally" speaking because there are still times when you may need specially shaped or specifically placed detectors, depending on what it is you want to detect and how you want to detect it. For instance, if you want a platforming enemy to jump over small objects, but not large objects, then the easiest way to do that would be to place a thin "head detector" at the top of the sprite that sticks out beyond the left and right edges, then do something like so:
-> DetectorHead: Set position to (Enemy.X, Enemy.Top)
+ Enemy is overlapping Ground at offset (2, 0)
+ Enemy is overlapping Ground at offset (-2, 0)
+ NOT DetectorHead is overlapping Ground