Объекты - полный перевод справки
2012-02-23 09:37:00 (читать в оригинале)
Статья о создании и уничтожении объектов в игре, изменение их параметров. Полный перевод официальной справки. Дополнения Космо Мизраил Горыныча.Эти функции манипулируют объектами в игре:
- instance_create(x, y, object) - создаёт указанный объект в указанных координатах
- instance_number(object) - возвращает количество объектов указанного типа в комнате
- instance_list(object) - возвращает массив со всеми объектами указанного типа в комнате
- instance_destroy() - уничтожает тот объект, который эту функцию вызывает.
- move_towards_point(x, y, speed) - двигает объект навстречу указанному объекту (на один кадр)
- place_meeting(x, y, object) - возвращает, происходит ли столкновение с указанным объектом в указанных координатах. Полезно при поиске пути или свободного места для создания объекта.
Как же быть с уничтожением или манипулированием других объектов? Для них есть функция with. Вот пример кода для простой бомбы:
xx = x;
yy = y;
with (blocks){
if (point_distance(x,y,xx,yy) < 100){
instance_destroy();
}
}
instance_destroy();
Однако будьте осторожны: бомба не может уничтожить другую бомбу, т.к. на момент уничтожения второй, третьей бомбы самой первой не будет уже существовать, и произойдёт логическая ошибка.
У каждого объекта есть свои "родные" переменные.
Эти влияют на движение:
- x - расположение по горизонтали
- y - расположение по вертикали
- xstart - начальное расположение по горизонтали
- ystart - начальное расположение по вертикали
- xprevious - расположение по горизонтали в предыдущем кадре
- yprevious - расположение по вертикали в предыдущем кадре
- direction - направление движения (изначально 0, т.е. вправо)
- speed - скорость движения
Следующие переменные влияют на внешний вид объектов:
- depth - глубина объекта (влияет на порядок прорисовки, не советуем применять!)
- visible - прорисовывать ли объект или нет. Также влияет на событие Draw.
- sprite_index - меняет спрайт вместе с маской столкновений
- image_index - текущий кадр анимации
- image_speed - скорость анимации (кадров в секунду)
- image_single - если переменная не равна -1, то анимация останавливается на указанном кадре
- image_angle - поворот спрайта
- image_alpha - прозрачность спрайта (0..1)
Следующие переменные неизменяемы. Точнее - изменяемы, но менять их мы не советуем!!!
- id - уникальный номер объекта
- other - используется в столкновениях; это объект, с которым сталкиваемся
- object_index - тип объекта, т.е. образец, от которого он создавался
- parent - возвращает тип объекта Parent