Я собираю свою игру, которую я написал для android. Это было написано простым холстом, чтобы изучить основы. Чтобы получить его на более высокий уровень, я напишу его с помощью libgdx
. Для этого я подумал о stage
, где я добавляю свой Actors
(Монстры, навыки, если они активны, характер и, возможно, частица). Я читал, что это хороший способ создать 2D-игру.threading в libgdx и общие вопросы для перемещения спрайтов
Дополнительная информация об этом. Это 2D RPG, основанный на квадратной системе. Каждый шаг - это один шаг к следующему квадрату (возможно, на основе плит, основанный на подошве).
В старой версии я использовал потоки для каждого монстра, чтобы они могли обрабатывать и реагировать так, как они хотят ». Возможно ли это в libgdx или мне нужно обрабатывать его по-другому?
Если я хочу переместить символ с одного на следующий квадрат, у меня было рассчитанное время, когда я переместил спрайт с одного квадрата на другой, изменив его пиксельную позицию. В libgdx у меня будет камера с квадратами как init. Так (40f, 30f), например. Он работает, чтобы переместить символ в пределах thread
, как я это делал в старой игре? Так что я знал, что это займет 500 мс от одного квадрата к следующему, поэтому каждые 50 мс необходимо, чтобы ppuX составлял + 0.1f. В зависимости от этого я также обновил спрайт. Поэтому, если он быстрее перемещается, спрайт становится быстрее изменен.
Я также запрограммировал навыки таким образом. Например, огненный шар - это изображение, которое перемещается нитью, пока оно не ударит.
Просмотреть изображение прототипа.
Я знаю об этом учебнике, но мне интересно, как я получаю своих монстров, чтобы рассчитать следующий шаг, если они сделали свой первый шаг. Могу ли я просто запустить исчисление в этом рендеринге, если его действие будет выполнено? Поэтому я всегда проверяю логический «moveone», который устанавливается, если hes в следующем блоке.и если moveone я рассчитать следующий шаг? Все в этом потоке в 'stage.act()'? – BennX
Я не уверен, понимаю ли вы вас (если нет, пожалуйста, перефразируйте ответ), но я думаю, ваш вопрос состоял в том, как заставить ваших монстров (сущностей) «знать», что они должны двигаться. Ну, так как вы будете работать в одном потоке, вам не нужно иметь флаг 'moveDone' - монстр либо переместился, либо нет, нет промежуточного состояния. Вы можете, например, переместите все свои монстры в один блок в метод «render», а затем выполните дополнительную логику. Отвечает ли это на ваш вопрос? –
Более или менее. Я получил квадратную систему и всегда хочу, чтобы они вычислили следующий ход. Поэтому, если они находятся в квадрате (переход сделан), я хочу рассчитать лучший следующий квадрат, чтобы перейти к. Это даже с хорошим алгоритмом KI позже. – BennX