by skydereign » Sat Jun 09, 2012 7:11 pm
You should be able to test that yourself. The results will be pretty obvious. If you type in y+=5 in draw, your actor will move at a constant speed of 5 pixels per frame. If you use yvelocity+=5 your actor will increase in speed by 5 pixels per frame (accelerating extremely fast). So, if you want to use constant movement (as in the first method) you can just use yvelocity=5 in the create actor event. That way the actor's speed will be 5, and you don't have to keep telling the actor to move 5 pixels down (like you would using the draw event). If you can avoid using the draw actor event you should (within reason) because the event triggers every frame of the game. This isn't too big a problem if only a couple of actors have it, but if you had 100 bullets on screen, you can see that it could easily get out of hand.
There are cases though you can't use simple setting of yvelocity to achieve the kind of movement you want, and in that case you can use the draw event. For instance, if the enemy needs to be able to move back and forth depending on the player's position, you can either use a timer or the draw event, since you need to check occasionally if the enemy needs to change direction.