Для оптимизации, на сколько я знаю, нет разницы в каком степе ты пишешь код - в любом случае код будет выполняться каждый шаг. Разница очень хорошо описана в справке:
Quote
...Но Вы также можете выбрать событие начала шага (Begin step) и конца шага(End step). Событие начала шага выполняется в начале каждого шага, перед всеми остальными событиями. Обычное событие шага выполняется перед тем, как экземпляры объекта будут перемещены в новые позиции. Событие конца шага выполняется в конце шага, перед событием рисования. Оно обычно используется, например, для изменения спрайта в зависимости от его текущего направления.
Где писать код зависит от того, когда именно должны выполняться действия. Чаще всего это не имеет значения, по этому основную часть кода можно писать в степ.
А вот привязку одного объекта к другому луче делать в событии End step. Вот код привязки:
Если его выполнить в событии Step, то данный объект переместится в координаты объекта obj1, но движение объекта obj1 выполнится в стобытии End Step. По этому когда привязку объектов делают в step они как бы "отрываются" друг от друга.Добавлено (30.01.2011, 10:44)
---------------------------------------------
А вообще, для оптимизации лучше убрать из степа код, который не обязательно выполнять каждый шаг, и перенести его в аларм.