: delay = delay + 1
: IF delay = 5000 THEN
: move the enemy
: delay = 1
: END IF
You have a good idea going here, and you are correct in thinking it'll be faster. That's why old games run really fast on modern computers; they did for loops and counted instead of syncronising the event with the timer.
start! = TIMER: DO WHILE TIMER < start! + 1: LOOP
What does this do?
First, it assigns start = timer. In my case, timer is now 49907.82. Then, it will stay in the loop until timer is >= to 49908.82, even though it says less than. Put in code, the effect is that it will wait 1 second, indicated by the 1 before the :loop statement. To wait 2 seconds, you'd put a 2 in there, to wait an entire minute, you'd put 60 in there. To wait half a second, you'd put .5 there. See? Hope it helps. Let me know how it goes, ok? Oh, and don't forget the ! after start. Because the timer can go above 32k, it's best to put it in single precision, it holds any timer value, as well as not sucking up too much memory.
---------------------------------------------
I've got a plan, but I'm going to need a dead monkey, some empty liquor bottles, and a vacuum cleaner.