Вторник, 26 Ноября 2024, 22:00

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Простенькая система освещения
OverdraveДата: Пятница, 27 Сентября 2013, 14:42 | Сообщение # 1
частый гость
Сейчас нет на сайте
Захотел сделать свою систему с блэкджеком и недо-тенями, но. увы, без помощи я не обойдусь...
Вся система основана на проверке расстояния до родительского объекта Light_par, считывания его переменной look_stat (чем больше переменная - тем дальше от радиус видимости) и изменении спрайта (мобы работают аналогично, только меняют свою переменную "visible").
Персонаж стоит, ходит, свет есть, мобы отображаются, всё, кажется, прекрасно, но тут мною добавляется ещё один объект, свет от факела (спрайт для которого ещё не нарисован |D)...
Так как объект пола берёт переменную look_stat непосредственно от Light_par, то он считывает этот параметр у ПЕРВОГО объекта с родителем Light_par.
ПРИМЕР:
Факел должен освещать блоки в радиусе 70-ти пикселей, а персонаж - 130.
Параметр look_stat факела: 0,7, а у персонажа - 1,3.
Блок-пол считывает переменную ФАКЕЛА, т.е. все источники света теперь будут освещать одинаково - на 70 пикселей.

Я попробовал использовать переменную a, считывающюю id ближайшего объекта, и пока объекты вдалеке друг от друга, всё в порядке, но когда подходят друг к другу...

Кстати, код Draw объекта пола:
Код
if instance_number(Player)>0
{
if distance_to_object(a)<a.look_stat*100 and !collision_line(x,y,Light_Player.x+16,Light_Player.y+32,solid_parent,0,0)
draw_sprite_ext(sprite9_snow_bricks_light,image_index,x,y,1,1,direction,c_white,1)
else
draw_sprite_ext(sprite8_snow_bricks_back,image_index,x,y,1,1,direction,c_white,1)
}
else
draw_sprite_ext(sprite8_snow_bricks_back,image_index,x,y,1,1,direction,c_white,1)




Итак, как это исправить? Или же моя система настолько шлаковая, что её лучше заменить сразу?


Сообщение отредактировал Overdrave - Пятница, 27 Сентября 2013, 14:43
GAME-MAKER-manДата: Понедельник, 30 Сентября 2013, 08:04 | Сообщение # 2
Мистер GAME-MAKER-man
Сейчас нет на сайте
Может лучше в яндексе поискать?
OverdraveДата: Понедельник, 30 Сентября 2013, 09:05 | Сообщение # 3
частый гость
Сейчас нет на сайте
Цитата (GAME-MAKER-man)
Может лучше в яндексе поискать?

Ну, не надо так расстраиваться, что тебя посылали в яндекс искать, но ты правда тогда задал не конкретный вопрос. Я же свой вопрос построил, по-моему, весьма доходчиво, поэтому жду столь же ясного ответа.
StarkДата: Вторник, 01 Октября 2013, 19:03 | Сообщение # 4
GCUP: Terran Inc.
Сейчас нет на сайте
Цитата (Overdrave)
Или же моя система настолько шлаковая, что её лучше заменить сразу?

Касательно замены, возможно подскажу куда копать, вот довольно хороший пример освещения либо вот этот, удачи smile


Работаю программистом в ASTED - Разработка сайтов, разработка калькуляторов, квизов и crm
  • Страница 1 из 1
  • 1
Поиск:

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