прицеливание в направлении врага к игроку Game Maker Studio 2 DnD

Я использую Game Maker Studio 2 для создания игры в подземелье в качестве опыта программирования, и я пытаюсь сделать врага целью игрока. так как я не понимаю команды в программе, я использую Drag and Drop, чтобы сделать это. Я устанавливаю его скорость на 4, затем он проверяет, существует ли экземпляр (поскольку у меня есть несколько типов объектов игрока), затем устанавливает направление точки на этот объект игрока, но он просто начинает двигаться в верхний левый угол экрана. кто-нибудь знает, как я могу это исправить? Заранее спасибо!


person Yuval    schedule 10.02.2020    source источник


Ответы (2)


Похоже, что значения X и Y необходимо обновить до экземпляра объекта целевого игрока. Я не уверен с dnd, но с gml вы можете получить к нему доступ из самого объекта. Например, если вам нужна координата «X» объекта игрока, вы можете получить ее, используя что-то вроде этого

objPlayer.x;

Возможно, вам придется использовать глобальную переменную, если это не сработает для вас (обязательно обновите ее в событии STEP!). Кроме того, следует отметить, что если у вас есть несколько объектов игрока (что, похоже, у вас есть), вам нужно будет знать идентификатор экземпляра для этого объекта игрока. Для этого вы можете использовать что-то вроде этого:

players[i] = instance_create(xx, yy, objPlayer);

Примечание: я также согласен со Стивеном. Я бы порекомендовал начать с этого как можно проще и усложнять его по мере того, как вы добиваетесь того, чтобы все работало так, как вы хотите. Это сохранит ваше здравомыслие в долгосрочной перспективе, поверьте мне. ;)

person Treasure Dev    schedule 14.02.2020
comment
Спасибо, я хотел бы увидеть это, когда я все еще собирался для этого. Прежде чем я увидел этот ответ, что я сделал только сейчас, я отказался от этого проекта и начал изучать единство. Спасибо хоть! - person Yuval; 08.06.2020

Проверить, существует ли какой-либо экземпляр из нескольких экземпляров, в Gamemaker Studio немного сложно, потому что нужно принять решение, какой из них ближе всего. Поскольку он не может принять это решение, кажется, что он следует точке по умолчанию (вверху слева).

Поэтому ему нужно проверить все экземпляры игрока и посмотреть, какой из них ближе всего, а затем выбрать этот экземпляр игрока для отслеживания. Это нужно делать в Step Event, потому что Step Event постоянно обновляется.

Я не знаком с Drag and Drop, поэтому не могу привести пример.

Сначала проверьте, работает ли следующая механика с одним экземпляром (игроком). Как только это сработает, вы можете попробовать с несколькими экземплярами.

person Steven    schedule 11.02.2020
comment
Я думал, что неправильно понял тебя, но я думаю, что ты неправильно понял меня. Я имел в виду, что у меня есть оператор if, который проверяет, существует ли PlayerRight. если да, то туда. если нет экземпляра PlayerRight, он проверяет наличие PlayerLeft. если он существует, он идет туда. если нет, то переходит к следующему оператору if. У меня нет нескольких экземпляров одного и того же экземпляра, который он проверяет, он просто проверяет несколько типов объектов. Спасибо, в любом случае! - person Yuval; 12.02.2020