Среда, 24 Апреля 2024, 06:34

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Зона видимости.
Зона видимости.
MarchFoxДата: Пятница, 02 Августа 2013, 18:46 | Сообщение # 1
частый гость
Сейчас нет на сайте
Подскажите, нужно сделать зону видимости как roguelike играх.
Сам пытался но выходил всякий бред.
Обещаю место в субтитрах и плюсы тому кто поможет.
Не кидайте тапками если подобная тема уже есть.


Цитаты великих людей! Или не очень великих?!
Василий (14 лет): я не лучший художник (ну развечто айзберг лучше и все и ахно может быть)
Василий (14 лет): теперь я тебя оскорбил я должен разбиратся с тобой))
Василий (14 лет): фигня уроки я видел норм уроки а это фигня потомучто не норм уроки а просто фигня а не норм
KrososДата: Пятница, 02 Августа 2013, 18:51 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
MarchFox, Кинь скрин , а то не очень понятно , что тебе нужно.




Мой проект
MarchFoxДата: Пятница, 02 Августа 2013, 18:55 | Сообщение # 3
частый гость
Сейчас нет на сайте
Krosos, персонаж не должен видеть через стены и препятствия (Желательно не затемнение а просто темнота):


Цитаты великих людей! Или не очень великих?!
Василий (14 лет): я не лучший художник (ну развечто айзберг лучше и все и ахно может быть)
Василий (14 лет): теперь я тебя оскорбил я должен разбиратся с тобой))
Василий (14 лет): фигня уроки я видел норм уроки а это фигня потомучто не норм уроки а просто фигня а не норм


Сообщение отредактировал MarchFox - Пятница, 02 Августа 2013, 18:57
KrososДата: Пятница, 02 Августа 2013, 19:07 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
ну , самый простейший способ из всех - это:
1)Сделать объект fade
2)Сделать его спрайт 32x32 например
3)
Лепим объекты темноты на всем поле игры: (Например поле игры равно 3200х3200)
xx= 0 yy=0
for (xx=16;x>3200 ; xx+=32){
for (yy=16;y>3200 ; yy+=32){
instance_create(xx,yy,fade)}}
4)Сделать объекты стенки или объекты выделяющие стенку(невидимые например) stena
5)Выделить ими стены
6)fade:
if !collision_line(x,y,instance_nearest(x,y,Player).x,instance_nearest(x,y,Player).y,stena,0,0) { //Если между объектом темноты и объектом игрок нету стены
if distance_to_object(instance_nearest(x,y,Player)<300 {visible=0}else{visible=1} //Если наш объект на расстоянии 300 например то темнота видима или невидима.
}}
Это самый простой способ , но есть и посложнее способы...





Мой проект


Сообщение отредактировал Krosos - Пятница, 02 Августа 2013, 19:22
MarchFoxДата: Пятница, 02 Августа 2013, 19:24 | Сообщение # 5
частый гость
Сейчас нет на сайте
Ругается на {visible=0}.
Можешь сделать пример? Если не сложно.

Добавлено (02.08.2013, 19:24)
---------------------------------------------
Понял где была ошибка. Не зыкрыл скобку в (instance_nearest(x,y,Player)<300.
Но все равно не работает. Нужен пример.


Цитаты великих людей! Или не очень великих?!
Василий (14 лет): я не лучший художник (ну развечто айзберг лучше и все и ахно может быть)
Василий (14 лет): теперь я тебя оскорбил я должен разбиратся с тобой))
Василий (14 лет): фигня уроки я видел норм уроки а это фигня потомучто не норм уроки а просто фигня а не норм
KrososДата: Пятница, 02 Августа 2013, 19:36 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Что-то я дофига натупил ща=)
Вот, я все нормально сделал=)
primers.gmk





Мой проект
MarchFoxДата: Пятница, 02 Августа 2013, 19:54 | Сообщение # 7
частый гость
Сейчас нет на сайте
Krosos, спасибо.
Пример работает немного нестабильно, но я понял как это должно работать.


Цитаты великих людей! Или не очень великих?!
Василий (14 лет): я не лучший художник (ну развечто айзберг лучше и все и ахно может быть)
Василий (14 лет): теперь я тебя оскорбил я должен разбиратся с тобой))
Василий (14 лет): фигня уроки я видел норм уроки а это фигня потомучто не норм уроки а просто фигня а не норм
KrososДата: Пятница, 02 Августа 2013, 19:57 | Сообщение # 8
постоянный участник
Сейчас нет на сайте
MarchFox, просто я по быстрому накидал стенки , вот если были бы они раскиданы по клеткам 32 на 32 , то было бы намного лучше.




Мой проект
MarchFoxДата: Пятница, 02 Августа 2013, 20:01 | Сообщение # 9
частый гость
Сейчас нет на сайте
Krosos, работает, но жутко лагает.

Цитаты великих людей! Или не очень великих?!
Василий (14 лет): я не лучший художник (ну развечто айзберг лучше и все и ахно может быть)
Василий (14 лет): теперь я тебя оскорбил я должен разбиратся с тобой))
Василий (14 лет): фигня уроки я видел норм уроки а это фигня потомучто не норм уроки а просто фигня а не норм
KrososДата: Пятница, 02 Августа 2013, 20:26 | Сообщение # 10
постоянный участник
Сейчас нет на сайте
MarchFox, вот в этом и заключается проблема способа.
Он актуален только для маленьких игр.=(
Нужно делать , как можно меньше объектов fade
Также , нужно деактивировать fade за пределами экрана
instance_deactivate(fade);
instance_activate_region(view_xview[0]-100,view_yview[0]-100,view_wview[0]+100,view_hview[0]+100,false,true);
Деактивация тоже жрет цп , но значительно меньше.
Есть еще другой способ , темнота на экран , но с ним намного сложнее.
Его суть заключается в том , что темнота есть только на экране , а не на всей комнате

Еще можно рисовать fade .Это труднее , но жрать цп должен намного меньше.





Мой проект


Сообщение отредактировал Krosos - Пятница, 02 Августа 2013, 20:28
MarchFoxДата: Пятница, 02 Августа 2013, 21:58 | Сообщение # 11
частый гость
Сейчас нет на сайте
Krosos, ясно, попробую деактивацию.

Цитаты великих людей! Или не очень великих?!
Василий (14 лет): я не лучший художник (ну развечто айзберг лучше и все и ахно может быть)
Василий (14 лет): теперь я тебя оскорбил я должен разбиратся с тобой))
Василий (14 лет): фигня уроки я видел норм уроки а это фигня потомучто не норм уроки а просто фигня а не норм
KrososДата: Пятница, 02 Августа 2013, 23:34 | Сообщение # 12
постоянный участник
Сейчас нет на сайте
Также можешь ввести 2 фейд , который всегда будет виден, и если он столкнется с первым фэйдом , то он его удалит и подействует такая функция только один раз.
В общем нужно свети количество фэйдов к минимуму.
Или нужно мучить рисование...
Я потом обязательно попробую , мне тоже нужна эта темнота.





Мой проект
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Зона видимости.
  • Страница 1 из 1
  • 1
Поиск:

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