Как получить экземпляр объекта в игре?

Я пытаюсь использовать инструмент «Создать движущийся экземпляр» объекта в создателе игр. Проблема в том, что x и y должны совпадать с объектом, запускающим эти новые экземпляры.

Я пытался поставить this.x и player.x, но я не знаю, как сказать своим пулям, что они должны иметь начальные x и y от моего игрока.


person Thiago Sabin    schedule 12.03.2015    source источник
comment
(имя объекта).x и (имя объекта).y   -  person Timtech    schedule 17.03.2015


Ответы (2)


В большинстве диалогов создания действий есть «относительный» флажок. Если вы отметите его, он установит значения относительно объекта, из которого вызывается действие. x=0 y=0 сделает свое дело.

В коде GML вы должны сделать:

var bullet = instance_create(x, y, obj_bullet);
bullet.direction = direction; // shoot in direction the player is moving
bullet.speed = 4;
person Domino    schedule 12.03.2015

Предположим, что ваш объект игрока называется obj_player, вы можете использовать obj_player.x и obj_player.y. Это также предполагает, что у вас одновременно есть только один экземпляр игрока (что справедливо для большинства игр).

ИЛИ, если это действие относится к объекту, положение которого вы хотите получить, вы можете просто использовать x и y или self.x и self.y. Оба совершат один и тот же подвиг. Этот вариант не делает предположение, как вариант выше, поэтому его технически безопаснее использовать.

person Boom    schedule 02.04.2015