Понедельник, 25 Ноября 2024, 17:46

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Исчезновение объекта
RekerДата: Суббота, 15 Сентября 2018, 10:32 | Сообщение # 1
почетный гость
Сейчас нет на сайте
При приближении игрока к объекту, второй должен исчезать, а при отходе игрока опять появляться, но почему-то не работает.
create
Код

create
apha = 1;

step

image_alpha = alpha;
if (instance_exists(obj_player)) {
if (distance_to_point(obj_player.x,obj_player.y) < 100)
alpha -= 0.01;

if (distance_to_point(obj_player.x,obj_player.y) > 100)
  alpha += 0.01;
}



Сообщение отредактировал Reker - Суббота, 15 Сентября 2018, 15:32
LunarPixelДата: Суббота, 15 Сентября 2018, 13:02 | Сообщение # 2
старожил
Сейчас нет на сайте
Ну, как минимум, в create переменная объявлена с ошибкой - "apha" вместо "alpha".

И желательно, наверно, ограничения поставить на увеличение/уменьшение значения переменной.
Код
if (alpha > 0) alpha -= 0.01;
и
Код
if (alpha < 1) alpha += 0.01;




Сообщение отредактировал LunarPixel - Суббота, 15 Сентября 2018, 13:02
RekerДата: Суббота, 15 Сентября 2018, 13:47 | Сообщение # 3
почетный гость
Сейчас нет на сайте
LunarPixel, я тоже думал поставить ограничения, но потом подумал, ведь альфа не может быть меньше 0 и больше 1. А в create только тут ошибся, в коде нет опечатки. Но сейчас проверю, может поможет.
LunarPixelДата: Суббота, 15 Сентября 2018, 14:07 | Сообщение # 4
старожил
Сейчас нет на сайте
Reker, проблема может возникнуть еще в том случае, если для объекта используется событие рисования (Draw).

Цитата Reker ()
я тоже думал поставить ограничения, но потом подумал, ведь альфа не может быть меньше 0 и больше 1.

Но твоя переменная может. Она у тебя будет бесконечно уменьшаться или увеличиваться, соответственно, чтобы ей потом вернуться к исходным значениям, понадобится больше времени.


AlexanderBekkerДата: Суббота, 15 Сентября 2018, 14:09 | Сообщение # 5
BekkerDev Studio
Сейчас нет на сайте
Можно вообще уложиться в две строчки:
Код
image_alpha += ((distance_to_point(obj_player.x, obj_player.y) > 100) * 2 - 1) * 0.01;
image_alpha = max(min(image_alpha, 1), 0);


Разработчик, композитор и издатель инди-игр в Steam.
Редактор карт: BekkerDev Level Editor 4
Страница разработчика в Steam
Паблик ВК: BekkerDev Studio
  • Страница 1 из 1
  • 1
Поиск:

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