Форум » Вопрос-Ответ » Messenge » Ответить

Messenge

Volotar: Я хотел бы реализовать такую "фишку". Герой подходит к объекту (пусть это будет таблика, дверь, дерево - неважно) и появляеться информация (окно без кнопки "ОК", ПРОСТО - "какой-то текст" и через время исчезла). Спасибо!

Ответов - 6

Ev-genius: Как бы вы сами это реализовали по пунктам 1,2,3 на русском языке?

Volotar: Как бы я реализовал, вариант 1: нарисовал спрайт с текстом, который появлялся при событии (герой подошел к двери), задержка 2 с и удалил спрайт. вариант 2: с помощью DRAW нарисовал рамку с надписью, задержка, удалил. Почему я спрашиваю, есть игры на "гамаке" когда герой говорит (тоесть ведет диалог) с каким-то персонажем, как это реализовано я не знаю, поэтому пока спрашиваю. :)

Ev-genius: неправильно немножко, по пунктам это будет так: Для объекта табличка(дерево-дверь) 1. если расстояние от меня до объекта "игрок", меньше 100 пикселей, и мы ещё не создали подсказку то (1. ИЛИ альтернативный вариант первого пункта, если объект игрок столкнулся со мной и мы ещё не создали подсказку то) 2. создаем объект подсказка 3. запоминаем что подсказка создана 4. если подсказка была создана но игрок уже свалил больше чем на 200 пикселей, то забываем о том что мы создавали подсказку, чтобы потом создать её снова если это будет нужно, если нет то 4 пункт выкидываем. Для объекта Подсказка: 1. при появлении создаем Сигнал(Аларм) на нужное время 2. при срабатывании сигнала удаляемся. значит сначала нужно определиться как будет показываться подсказка при приближении на какоето расстояние или при столкновении далее подсказка показывается один раз или каждый раз, если каждый раз то в каком промежутке. и когда уже будет внесена ясность можно написать эти 5-6 строчек кода


Volotar: Все верно и приняты все рассуждения. Подсказка показывается при столкновении. НО появляющаяся "подсказка" чем должна быть? (Окно, спрайт, диалог и т.п.)

Ev-genius: лучше простой объект который будет иметь спрайт окошка подсказки стилизованого под игру, и в котором будет печататься текст. значит объекту табличка(дверь-дерево) при появлении задаешь переменную msgShow=false; это значит подсказка ещё не появлялась. указываешь событие Столкновение с игроком. в этом событии пишешь if(!msgShow)//если подсказку ещё не показывали { instance_create(podskazka,x,y)//создаешь объект подсказка msgShow=true; //это значит подсказка была показана больше её создавать ненужно } далее. Объект подсказка это обычный объект который имеет свой спрайт фона и внутри которого рисуется некий текст. Если у каждой таблички(двери-дерева) которых будет сто штук на уровне, будет свой собственный текст, то этот текст загоняется прям на уровне. ты создал объект табличка и разместил эту табличку в комнате в двух экземплярах, одна внизу другая вверху гденить. зажимаешь вроде контрл и кликаешь по табличке правой мышкой выпадает меню выбираешь создать код. откроется скрипт туда пишешь volotarHelpText="Подсказка первой таблички"; также кликаешь по второй табличке, правой мышкой с контролом зажатым, там записываешь volotarHelpText="Подсказка второй таблички"; теперь у тебя на уровне будут две таблички которые реагируют на столкновения игрока и ведут себя одинакова но имеют разный текст значит в коде создания подсказки пишешь уже както так: if(!msgShow)//если подсказку ещё не показывали { o_helpBox = instance_create(podskazka,x,y)//создаешь объект подсказка msgShow=true; //это значит подсказка была показана больше её создавать ненужно o_helpBox.text = volotarHelpText; } теперь при создании подсказки в неё будет записываться текст таблички который ты будешь записывать каждой табличке свой. вот а объект подсказка должен будет показываться, писать текст которые ему передали и создавать Аларм, и через пару секунд запускать это сабытие аларма где и будет удалять себя. Все функции описаны правильно в справке, я писал по памяти, для гамака есть русская справка с подробным описанием как тотже instance_create(podskazka,x,y) правильно написать, а то я могу напутать

Volotar: Спасибо! Тhank you! Я такого подробного ответа даже и не ожидал. Для меня "ключевым словом" стало - Ev-genius пишет: объект который имеет свой спрайт фона и внутри которого рисуется некий текст Остальное я приняныл как бонус, как приз - ну незнаю даже как и назвать! Спасибо! :)



полная версия страницы