Четверг, 26 Декабря 2024, 08:15

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Касание со спрайтом объекта
GameMakerBeginnerДата: Пятница, 27 Марта 2020, 18:40 | Сообщение # 1
был не раз
Сейчас нет на сайте
Добрый день всем знатокам Game Makera. Хотел сделать одну фичу, суть её с том, что когда касаешься объекта, то появиться show_message с текстом. Реализовывал через distance_to_object. Но проблема с том, что текст должен появляться только тогда, когда игрок касается с непустой областью (в которой есть пиксели). А это я не знаю как сделать. Сразу скажу, что объект не имеет физики. Если пока не понятно, что я хочу, то сегодня вечером опишу суть задачи понаглядней, в картинках.
Supr_maksДата: Пятница, 27 Марта 2020, 19:20 | Сообщение # 2
частый гость
Сейчас нет на сайте
Бро ты в спрайте обьекта измени маску на пиксели обьекта.

У всех в душе пустота...
GameMakerBeginnerДата: Пятница, 27 Марта 2020, 20:31 | Сообщение # 3
был не раз
Сейчас нет на сайте
А это надо тогда через collusion делать, или без разницы? И где можно побольше почитать про маски?

Добавлено (28 Марта 2020, 01:02)
---------------------------------------------
Я кстати почитал про маски объекта и всё равно остались вопросы.

На скрине я показал красным те зоны, при соприкосновении с которыми должно быть выполнено действие.
Зелёным обозначена зона, при контакте с которой в данный момент выполняется действие.
Так скажем красное - это ожидание, а зелёное - реальность.
Я вот и не знаю, как сделать такую мультимаску, или может ещё есть способ как-то отрисовать вручную.
Если вы хотите написать "так сделай два отдельных объекта", то это не суть этого вопроса. В моем будущем проекте мне надо будет сделать и посложнее фигуры, чем два прямоугольника. Так что если есть способ - спасайте.
На словах должно быть так: область закрашена цветом и игрок касается её → происходит действие, область не закрашена цветом и игрок касается её → ничего не происходит. А я пока полажу по интернету.

Сообщение отредактировал GameMakerBeginner - Пятница, 27 Марта 2020, 20:37
DivESДата: Суббота, 28 Марта 2020, 01:27 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
GameMakerBeginner, привет!
Не знаком с GMS (на замечания не смотри — было вечность назад), но вот вроде бы получилось нагуглить: тык.
Если с английским языком всё в порядке — разберёшься. Но я бы первым делом попробовал поиграться и tolerance.

А, и в этом уроке стоит автоматический режим, а у тебя — мануальный. Может быть в этом ещё дело :)


Сообщение отредактировал DivES - Суббота, 28 Марта 2020, 01:28
GameMakerBeginnerДата: Суббота, 28 Марта 2020, 02:17 | Сообщение # 5
был не раз
Сейчас нет на сайте
DivES, привет. Автоматический режим по факту сделает прямоугольник под размер изображения, т.е. то же самое, что обозначил я. Почитал я этот урок, вроде что-то толковое, но там решают проблему с вращением объекта, скорее всего. Я тут подумал, что если при столкновении с объектом проверять цвет точки соприкосновения. Например
Код
if( distance_to_object(obj)<=0 and collusion_point_colour!=0 (должна быть другая команда, которую я не знаю как раз таки) )
show_message("Всё получилось!");


Сейчас ещё поищу....

Добавлено (28 Марта 2020, 16:14)
---------------------------------------------
Так, я возможно понял загвоздку. Толерантность на самом деле оказалась важна. Если значение 0 - столкновение будет даже с полностью пустыми пикселями. Если 255, то столкновения не будет даже с полностью закрашенным объектом.
Теперь задача полегче, подскажите, как ещё можно задать проверку не физического контакта объектов (я просто использовал distance_to_object(), и оно походу вообще игнорирует маску соприкосновения).

  • Страница 1 из 1
  • 1
Поиск:

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