Зона видимости.
|
|
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 фейд , который всегда будет виден, и если он столкнется с первым фэйдом , то он его удалит и подействует такая функция только один раз. В общем нужно свети количество фэйдов к минимуму. Или нужно мучить рисование... Я потом обязательно попробую , мне тоже нужна эта темнота.
Мой проект
|
|
| |