Доброго времени суток! Возникли некие сложности в постройке игры, и надеюсь мне помогут с этими сложностями. И так вот несколько вопросов: 1.Реализация вражеского юнита. В принципе я хочу получить врага который будет атаковать главного героя толчками. По такой схеме: - Враг ищет героя в радиусе например 6 клеток (32х32) - Если есть герой в радиусе, то идёт целенаправленно к герою. - Дойдя до героя, он должен ударить, и оттолкнуться от него в момент удара на небольшое растояние (хотя бы на одну-две клетку. 2.Переход в другую комнату не теряя героя, переменных и оказаться в нужном месте. Суть проста. Например: Главный герой идёт вверх,сталкивается с объектом чтобы попасть в следующую комнату. Героя нет. Значит и переменных тоже. Ставя объект героя постоянным, в комнату он попадает, переменные есть, но оказывается он также на верху, хотя надо быть внизу. (способ с перемещением героя не прокатит).
Перемещение должно быть как в RPG играх.
3.Привязка объекта без лишних передвижений. Вот это мне кажеться самая интересная сложность. Мы привяжем объект к виду (например картинку), в настройках комнаты ставим слежение камеры за игроком (следовать за игроком), делаем комнату побольше, проверяем! Что мы видим когда камера следит за игроком? Видим как ходит на 1-2 пикселя наш привязанный к виду объект. Как это вообще устранить?
Пока вроде вопросов никаких нету больше. Надеюсь поможете. Заранее благодарен за Вашу помощь
Сообщение отредактировал Fоzzie - Воскресенье, 18 Мая 2014, 09:19
ладно, попробую помочь. Начну со второго вопроса. Есть 2 варианта. 1)твой игрок - объект с флагом persistent. Это значит что он существует независимо от комнаты. У объектов в списке events - others есть пункт - "room starts". Ивент выполняется в момент перехода в новую комнату, и создан как раз для ситуаций типа твоей. Собственно, в него вставляешь код по типу такого:
[code] switch(room) { case room1: //do something break;
case room2: //do something break; }
соответственно room1 room2 ... roomN - твои названия комнат. Ну а вместо //do something нужно подставить новые координаты. Но в твоем случае еще я так понимаю нужно дополнительно проверять через какую дверь вошел игрок - слева или справа, сверху или снизу - но это думаю уже сам разберешься.
2)Твой объект не постоянный. В том же other в events есть room ends - выполняется при выходе из комнаты. Сохраняешь в нем при выходе в виде какой-то структуры все нужные данные игрока, а в create их считаешь. Соответствено координаты выставляются в редакторе комнаты методом размещения объекта. Способ гораздо хуже чем первый, если честно.
По третьему вопросу - в настройках камеры в комнате, есть 2 поля, которые отвечают за смещение объекта к краям экрана, после чего собственно камера приводится в движение. Если мне не изменяет память, то эти 2 значения нужно установить в размеры, большие чем половина соответствующего размера комнаты. Вроде как то так Сейчас нету гмс перед глазами, так что точно не скажу.
Насчет первого вопроса - все это делается примитивными алгоритмами и вычислениями, но система получается многоходовая, так что вот так взять и написать здесь тебе все что для этого нужно, с учетом всех нюансов - врядли кто то станет. Зато для тебя станет отличной тренировкой. Так что лучше сделай это сам, поверь, никаких супер-сложных функций там тебе нужно не будет Ghaarp