Вопрос - Ответ (Game Maker)
| |
фурилон | Дата: Пятница, 26 Августа 2011, 10:54 | Сообщение # 2101 |
У котэ свой движок. А у тебя?!
Сейчас нет на сайте
| Помогите ршить такую проблему. Полазил на форуме, видел подобное, но не работает. Есть рабочее окно для игры, а под ним интерфейс, который включает в себя мини-карту, линию жизни и текстовое задание. Проблема в том что не могу закрепить эти элементы в нужной области- линия жизни и радар вообще встают куда хотят не смотря на то, что я их ставлю на место, на панель интерфейса. И второе- как закрепить эту самую панель, что бы по ходу движения камеры за ГГ он оставался на месте, под рабочей областью? Спасибо.
Если ты стоишь на краю пропасти и думаешь прыгать или нет, то лучше прыгнуть. (с) Джон Леннон
|
|
| |
LunarPixel | Дата: Пятница, 26 Августа 2011, 12:01 | Сообщение # 2102 |
старожил
Сейчас нет на сайте
| фурилон, используй view_xview[0] и view_yview[0]. Добавляй их к координатам объекта/спрайта и он станет привязан к виду.
Например: draw_text(view_xview[0]+10,view_xview[0]+10,'Текст')
Текст будет всегда выводиться в позиции 10:10 относительно вида, даже если вид будет двигаться за героем.
|
|
| |
valeko | Дата: Пятница, 26 Августа 2011, 14:38 | Сообщение # 2103 |
частый гость
Сейчас нет на сайте
| Quote (SalahAdDin) А ты значение переменной speed_vrag присваиваешь переменной speed? speed=speed_vrag, есть такое? smile
есть такое: path_start(h1,speed_vrag,1,0); - объект должен перемещаться по пути со скоростью speed_vrag. Но не перемещается.
Quote (SalahAdDin) Ну с состоянием мыши тоже баловать не нужно.
Для правильной расстановки башен переписал код по-новому, получилось в 2 раза короче и все заработало.
2D NoteWar
|
|
| |
In_Search | Дата: Пятница, 26 Августа 2011, 18:51 | Сообщение # 2104 |
участник
Сейчас нет на сайте
| Интересует вопрос, можно ли разделить спрайт/объект на сектора?Напрмер навожу мышь на одну сторону объекта и она подсвечивается жёлтым, навожу на другую, она подсвечивается другим цветом. Или придётся использовать прозрачный спрайт/объект и привязывать его к нужному объекту?
|
|
| |
SalahAdDin | Дата: Пятница, 26 Августа 2011, 19:08 | Сообщение # 2105 |
постоянный участник
Сейчас нет на сайте
| Quote (valeko) path_start(h1,speed_vrag,1,0); Случайно не в событии создания стоит? Quote (valeko) Для правильной расстановки башен переписал код по-новому, получилось в 2 раза короче и все заработало. Правильный алгоритм - лучший способ не допускать ошибок. Quote (In_Search) Интересует вопрос, можно ли разделить спрайт/объект на сектора? Используй координаты относительно обьекта if mouse_x<object.x+n && mouse_x>object.x+m if mouse_y<object.y+f && mouse_y>object.y+p Ну и так далее по каждому сектору. Спрайті прозрачные придется рисовать поверх обьекта в координатах также относительно обьекта.
Фотошоп это не сложно. Немного теории, полезной на практике: Работа с наложением текстур Рисуем без планшета
Сообщение отредактировал SalahAdDin - Пятница, 26 Августа 2011, 19:10 |
|
| |
valeko | Дата: Пятница, 26 Августа 2011, 21:51 | Сообщение # 2106 |
частый гость
Сейчас нет на сайте
| Quote (SalahAdDin) path_start(h1,speed_vrag,1,0);
Случайно не в событии создания стоит? smile
Конечно же в событии создания. Это же присваивание пути. Оно там и должно стоять.
2D NoteWar
|
|
| |
LunarPixel | Дата: Пятница, 26 Августа 2011, 22:06 | Сообщение # 2107 |
старожил
Сейчас нет на сайте
| valeko, событие создания срабатывает только при СОЗДАНИИ, а у тебя объект создается до того, как ему дается скорость. Скорее всего в этом и проблема. Попробуй либо менять скорость в другом событии, в Step например. Есть функция отдельная, которая скорость пути меняет. Или же сразу задавай рандомную скорость в самом враге при создании, зачем тебе её из другого объекта передавать!?
|
|
| |
jManiar | Дата: Пятница, 26 Августа 2011, 22:12 | Сообщение # 2108 |
частый гость
Сейчас нет на сайте
| gравильно мыслю о текстовых играх? На текст не обращайте внимания
Code otvet=show_message_ext('Ñåãîäíÿ íî÷üþ âû íå ìîãëè óñíóòü. Çà îêíîì äàâíî óæå íå áûëî ñîëíöà è òîëüêî âêëþ÷åííûå ôîíàðè âûäàâàëè ïðèçíàêè æèçíè. Âû âñòàèëè ñ êðîâàòè','Íà êóõíþ','Ïîñïàòü','Âêëþ÷èòü êîìïüþòåð' ) otvet2='' otvet3='' otvet4='' if otvet=1 {otvet2=show_message_ext('Âàì óæàñíî çàõîòåëîñü ïèòü, ïîýòîìó âû ïîøëè íà êóõíþ. Òàì, â õîëîäèëüíèêå, åäû áûëî ìàëî. Âàø âûáîð?', 'Ìîëîêî', 'Ñîê','Íè÷åãî')} if otvet=2 {otvet3=show_message_ext('Âû áëàãîïîëó÷íî çàñíóëè, íî, ê ñîæàëåíèþ, ÷åðåç íåêîòîðîå âðåìÿ, òàê êàê âàì õîòåëîñü ïèòü. Íàñòóïèëî óòðî','Ïîåñòü','Íà óëèöó','')} if otvet=3 {otvet4=show_message_ext('Êîìïüþòåð îæèâàë: íà÷àë øóìåòü âèí÷åñòåð. Óáåäèâøèñü, ÷òî âñ¸ â ïîðÿäêå âû ëåãëè ñïàòü.','Îê','','')} otvet5='' otvet6='' otvet7='' if otvet2=1 {otvet5=show_message_ext('Ìîëîêî íà íî÷ü - îòëè÷íûé âûáîð! Ïèòü âàì äåéñòâèòåëüíî õîòåëîñü ñèëüíî è ïîñëå ìîëîêà âû ïî÷óâñòâîâàëè ïðèòîê ñèë è ñ ÷èñòîé ñîâåñòüþ ëåãëè ñïàòü','Îê','','')} if otvet2=2 {otvet6=show_message_ext('Ñîê áûë âèøíåâûì. Âàøå ñàìî÷óâñòâèå íåìíîãî óëó÷øèëîñü, íî íåêàÿ êèñëèíêà íåäàâàëà âàì óñíóòü íåêîòîðîå âðåìÿ.','Îê','','')} if otvet2=3 {otvet7=show_message_ext('Âû áëàãîïîëó÷íî çàñíóëè, íî, ê ñîæàëåíèþ, ÷åðåç íåêîòîðîå âðåìÿ, òàê êàê âàì õîòåëîñü ïèòü. Íàñòóïèëî óòðî','Ïîåñòü','Íà óëèöó','')}
|
|
| |
SalahAdDin | Дата: Суббота, 27 Августа 2011, 00:03 | Сообщение # 2109 |
постоянный участник
Сейчас нет на сайте
| Quote (valeko) Конечно же в событии создания. Это же присваивание пути. Оно там и должно стоять. Оно должно стоять в нужном тебе событии, но не раньше чем инициализируются все переменные. Как уже сказал Пиксель, поставь все это дело в другое событие. Шаг конечно выход, но зачем тебе столько присваиваний, это лишний ресурс и меньшая производительность. Я бы пихнул в алярм, а в криэйте запустил таймер и все дела.
Добавлено (27.08.2011, 00:03) --------------------------------------------- Quote (jManiar) gравильно мыслю о текстовых играх? Для такого количества if есть индусы, и их предостаточно. Пользуйся switch|case (этот совет у меня становится все более популярным ) К стати не обязательно все диалоги писать в код, читай строки из файла.
Фотошоп это не сложно. Немного теории, полезной на практике: Работа с наложением текстур Рисуем без планшета
Сообщение отредактировал SalahAdDin - Суббота, 27 Августа 2011, 00:06 |
|
| |
Amigo007 | Дата: Суббота, 27 Августа 2011, 00:25 | Сообщение # 2110 |
был не раз
Сейчас нет на сайте
| Как сделать качественный разброс пуль? Чтоб при выстреле курсор чуть вверх приподнялся, ну и следовательно если без очередей стрелять курсор начинает стрелять в разные координаты выше начальных по оси y (2д платформер игра)Если кто играл в Soldat 2D, так у меня должен быть разбрлс как в режиме "реализм"
|
|
| |
valeko | Дата: Суббота, 27 Августа 2011, 00:58 | Сообщение # 2111 |
частый гость
Сейчас нет на сайте
| Quote (LunarPixel) событие создания срабатывает только при СОЗДАНИИ, а у тебя объект создается до того, как ему дается скорость.
Но с другими объектами ведь все параметры без проблем передаются таким образом и переменные почему-то видятся...
Quote (LunarPixel) Или же сразу задавай рандомную скорость в самом враге при создании, зачем тебе её из другого объекта передавать!?
Так не получится. У меня скорость должна быть рандомная, но одинаковая для всей волны. Т.е. у одной волны врагов - одна скорость. У другой - другая.
Наверное проще будет какую-то отдельную глобальную переменную для скорости завести.
2D NoteWar
|
|
| |
Лер_да_Рим | Дата: Суббота, 27 Августа 2011, 01:00 | Сообщение # 2112 |
заслуженный участник
Сейчас нет на сайте
| Ну, при нажатой кнопке при выстрелах mouse_y -= random_range(-1,2), допустим (-1 для того, чтобы иногда курсор опускался вниз, это логично). Я не играл в Soldat 2D и не до конца тебя понял... Вроде так.
Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.
|
|
| |
LunarPixel | Дата: Суббота, 27 Августа 2011, 09:07 | Сообщение # 2113 |
старожил
Сейчас нет на сайте
| Quote (Лер_да_Рим) Но с другими объектами ведь все параметры без проблем передаются таким образом и переменные почему-то видятся...
У тебя ещё где то аналогичная ситуация есть?! Параметры то передаются без проблем и в конечном итоге speed_vrag = случайному значению. Но вот path_start(h1,speed_vrag,1,0); при этом уже не срабатывает. Как только у тебя создался враг, сработало событие Create и произошло все, что там написано, вместе с path_start(h1,speed_vrag,1,0); в которой скорость по умолчанию 0, а уже ПОСЛЕ создания врага, у тебя передается параметр скорости.
|
|
| |
valeko | Дата: Суббота, 27 Августа 2011, 10:55 | Сообщение # 2114 |
частый гость
Сейчас нет на сайте
| Ах вот оно как работает!!!
Ну наконец-то понятно стало. Спасибо.
2D NoteWar
|
|
| |
SalahAdDin | Дата: Вторник, 30 Августа 2011, 17:05 | Сообщение # 2115 |
постоянный участник
Сейчас нет на сайте
| Вопрос чисто теоретический, на практике некогда опробовать. Комнаты, спрайты и прочие сущности в гм это тоже по сути обьекты, только разных классов, на сколько мне помнится, так по крайней мере писал кто-то в блоге йо-йо. Вопрос в следующем: Кто нибудь пробовал или может быть знает, можно ли к комнате обращаться так же как к обьекту через указатель. Например в событии создания комнаты мы задаем ряд переменных, но делать их одноразовыми как бы жирно будет, хотелось бы иметь возможность менять значения. Как к ним обращаться по ходу работы программы?
Возможно ли обращение вида "room_name".var1, "room_name".var2 или скажем room.var1, room.var2 для доступа к переменным заданным в событии создания комнаты?
Фотошоп это не сложно. Немного теории, полезной на практике: Работа с наложением текстур Рисуем без планшета
|
|
| | |
SalahAdDin | Дата: Вторник, 30 Августа 2011, 18:57 | Сообщение # 2117 |
постоянный участник
Сейчас нет на сайте
| Не, глобальными не интересно и очевидно. И очень жаль Собственно уже вопрос когда то уже задавал, но ответа не получил: Какое событие выполняется раньше и чем собственно отличается событие создания обьекта и код создания инстанса (который по правому клику на инстансе)?
Фотошоп это не сложно. Немного теории, полезной на практике: Работа с наложением текстур Рисуем без планшета
|
|
| |
Лер_да_Рим | Дата: Вторник, 30 Августа 2011, 19:40 | Сообщение # 2118 |
заслуженный участник
Сейчас нет на сайте
| Поясни, я недопонял. Событие Create и что?
Вообще для справки быстрее всего выполняются события. Потом код. А самые медленные - кнопки.
Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.
|
|
| |
SalahAdDin | Дата: Вторник, 30 Августа 2011, 19:52 | Сообщение # 2119 |
постоянный участник
Сейчас нет на сайте
| В пустой комнате создай обьект и кликни по нему правой кнопкой мыши с зажатым ctrl. В появившемся меню самый нижний пункт Instance Creation Code. Вот этот код создания когда выполняется, до или после события Create?
Фотошоп это не сложно. Немного теории, полезной на практике: Работа с наложением текстур Рисуем без планшета
|
|
| |
LunarPixel | Дата: Вторник, 30 Августа 2011, 19:58 | Сообщение # 2120 |
старожил
Сейчас нет на сайте
| SalahAdDin, судя по всему Instance Creation Code выполняется первым. А разницы между ними не уловил, разве что через событие создания работать удобнее, как по мне.
|
|
| |
|