Вторник, 08 Октября 2024, 00:26

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос - Ответ (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 относительно вида, даже если вид будет двигаться за героем. smile


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 раза короче и все заработало. smile


2D NoteWar
In_SearchДата: Пятница, 26 Августа 2011, 18:51 | Сообщение # 2104
участник
Сейчас нет на сайте
Интересует вопрос, можно ли разделить спрайт/объект на сектора?Напрмер навожу мышь на одну сторону объекта и она подсвечивается жёлтым, навожу на другую, она подсвечивается другим цветом. Или придётся использовать прозрачный спрайт/объект и привязывать его к нужному объекту?
SalahAdDinДата: Пятница, 26 Августа 2011, 19:08 | Сообщение # 2105
постоянный участник
Сейчас нет на сайте
Quote (valeko)
path_start(h1,speed_vrag,1,0);

Случайно не в событии создания стоит? smile
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 например. Есть функция отдельная, которая скорость пути меняет. Или же сразу задавай рандомную скорость в самом враге при создании, зачем тебе её из другого объекта передавать!? smile

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 (этот совет у меня становится все более популярным smile )
К стати не обязательно все диалоги писать в код, читай строки из файла.


Фотошоп это не сложно. Немного теории, полезной на практике:
Работа с наложением текстур
Рисуем без планшета


Сообщение отредактировал 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)
Или же сразу задавай рандомную скорость в самом враге при создании, зачем тебе её из другого объекта передавать!?


Так не получится. У меня скорость должна быть рандомная, но одинаковая для всей волны. Т.е. у одной волны врагов - одна скорость. У другой - другая.

Наверное проще будет какую-то отдельную глобальную переменную для скорости завести. smile


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); при этом уже не срабатывает. smile
Как только у тебя создался враг, сработало событие Create и произошло все, что там написано, вместе с path_start(h1,speed_vrag,1,0); в которой скорость по умолчанию 0, а уже ПОСЛЕ создания врага, у тебя передается параметр скорости. smile


valekoДата: Суббота, 27 Августа 2011, 10:55 | Сообщение # 2114
частый гость
Сейчас нет на сайте
Ах вот оно как работает!!!

Ну наконец-то понятно стало. Спасибо.


2D NoteWar
SalahAdDinДата: Вторник, 30 Августа 2011, 17:05 | Сообщение # 2115
постоянный участник
Сейчас нет на сайте
Вопрос чисто теоретический, на практике некогда опробовать.
Комнаты, спрайты и прочие сущности в гм это тоже по сути обьекты, только разных классов, на сколько мне помнится, так по крайней мере писал кто-то в блоге йо-йо. Вопрос в следующем:
Кто нибудь пробовал или может быть знает, можно ли к комнате обращаться так же как к обьекту через указатель. Например в событии создания комнаты мы задаем ряд переменных, но делать их одноразовыми как бы жирно будет, хотелось бы иметь возможность менять значения. Как к ним обращаться по ходу работы программы?

Возможно ли обращение вида
"room_name".var1, "room_name".var2
или скажем
room.var1, room.var2
для доступа к переменным заданным в событии создания комнаты?


Фотошоп это не сложно. Немного теории, полезной на практике:
Работа с наложением текстур
Рисуем без планшета
LunarPixelДата: Вторник, 30 Августа 2011, 17:15 | Сообщение # 2116
старожил
Сейчас нет на сайте
SalahAdDin, нет, обращаться так к переменным, объявленным в комнате, нельзя. Как то пробовал. smile
Единственное, что можно, это задать в комнате глобальные переменные, тогда с ними можно будет работать. Но это уже другая история. smile


SalahAdDinДата: Вторник, 30 Августа 2011, 18:57 | Сообщение # 2117
постоянный участник
Сейчас нет на сайте
Не, глобальными не интересно и очевидно. И очень жаль sad
Собственно уже вопрос когда то уже задавал, но ответа не получил:
Какое событие выполняется раньше и чем собственно отличается событие создания обьекта и код создания инстанса (который по правому клику на инстансе)?


Фотошоп это не сложно. Немного теории, полезной на практике:
Работа с наложением текстур
Рисуем без планшета
Лер_да_РимДата: Вторник, 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 выполняется первым. А разницы между ними не уловил, разве что через событие создания работать удобнее, как по мне. smile

Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг