forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Как сделать карту? "радар" (http://forum.boolean.name/showthread.php?t=15552)

vlactelin 27.09.2011 18:16

Как сделать карту? "радар"
 
И снова так сказать я....
В общем в верхнем правом углу надо создать "что-то" похожее на радар во всех нормальных играх... я не знаю как это реализовать на деле, но можно ли туда поместить вид со 2 созданной камеры и огородить его картинкой? :dontknow:

Spy4433 27.09.2011 18:54

Ответ: Как сделать карту? "радар"
 
две камеры одна сверху

и с побощью CameraViewport рисуешь :)

Gector 27.09.2011 19:17

Ответ: Как сделать карту? "радар"
 
ИМХО: Способ распространенный но не информативный радар получится. Можно рисовать точки(или что другое) с учетом поворота камеры. Делается через синусы, косинусы.

moka 27.09.2011 19:19

Ответ: Как сделать карту? "радар"
 
Spy4433, предложил простой вариант "влоб". Естественно никто так на деле не делает.

По сути у тебя есть позиция игроков, далее есть твоя позиция. Отнимаешь от позиции объекта для карты, твою позицию, при этом т.к. радар 2D и с видом сверху, то позиция нужна только по X и Z. Далее отняв, получаешь вектор смещения, делишь его на фактор соотношения велечин масштаба мир к радару (например на радаре 10 ед. мира, будет 1 пиксель, то делишь на 10). Далее рисуешь точку например.

По сути это логическая задача. И на неё нету конкретного ответа. Возьми листок бумаги, и подумай сам, решение простое, тебе просто нужно немного посидеть и подумать.

Colossus 27.09.2011 20:14

Ответ: Как сделать карту? "радар"
 
все простое кажется сложным

vlactelin 27.09.2011 21:50

Ответ: Как сделать карту? "радар"
 
Мока) решение идеальное) Все просто и ясно), но есть одно но... мне нужно именно так, чтобы вид сверху... у меня элементы на карте распределяются рандомно, так что нужно именно простецким влоб... просто как это можно реализовать?...
Spy4433 можешь по подробней?...

Hurrit 28.09.2011 00:55

Ответ: Как сделать карту? "радар"
 
да вы офигели советовать две камеры, анальная контузия двойная отрисовка - это вам не шутки. автор, делай как говорит Мока, просто создавай отрисовывай примитивы деля их на коэффицент, и все, лучше и проще не бывает.

moka 28.09.2011 01:00

Ответ: Как сделать карту? "радар"
 
Цитата:

Сообщение от vlactelin (Сообщение 203576)
Мока) решение идеальное) Все просто и ясно), но есть одно но... мне нужно именно так, чтобы вид сверху... у меня элементы на карте распределяются рандомно, так что нужно именно простецким влоб... просто как это можно реализовать?...

Дык, используй X и Z координаты, и будет тебе "радар сверху"..

IGR 28.09.2011 03:13

Ответ: Как сделать карту? "радар"
 
для красивости можно отрендерить статику уровня в текстуру (художник нарисовать) и под радаром поставить квад с этой текстурой и двигать ее !! Ну а динамические объекты уже отдельно рисовать исходя из позиций !!

Spy4433 28.09.2011 10:52

Ответ: Как сделать карту? "радар"
 
1. создается две камеры (одна вешается сверху и направлена вниз , вторая так как тебе нужно доп. cam1, cam2)
2 CameraViewport как пользоватся посмортри в справке блица
- это бытсро и не очень красиво. вар предложеный тов. MoKa более красивый и гибкий.

P.S можно ли туда поместить вид со 2 созданной камеры и огородить его картинкой - можно )


Кстати вопрос .. 2d блица тормозное.. не повлияет ли на производительность отрисовки юнитов(в виде rect или oval) на радаре(100 шт например)?

Reizel 28.09.2011 10:56

Ответ: Как сделать карту? "радар"
 
та ну, это ж изврашенство))
просто карту надо рисовать полупрозрачной, в рамке. А чтоб не просто точки отрисовывать - для каждого объекта задать "мини-иконку", чтоб хоть как то ориентироваться.

ПС или HeightMap запечь вместо фона для карты)

vlactelin 28.09.2011 14:50

Ответ: Как сделать карту? "радар"
 
спасибо за ответы... буду считать)

1)не поможете ссылью на 2д учебник?..
2)как сделать ту же рамку или полоску жизни?...
есть переменная life
3)как сделать так, чтобы над головой персонажа была стрелка, направленная всегда к цели, куда бы персонаж не поворачивался)? "как в lineage 2"

moka 28.09.2011 14:52

Ответ: Как сделать карту? "радар"
 
Тебе нужна тригонометрия, тут не 2D учебник, а школьная программа 7-9 классов по геометрии и алгебре + смекалка.

Для жизни, получи screen-space позицию над персонажем (CameraProject), далее рисуй полосу.

Для 2D используй лучше всего FastImage, т.к. Blitz2D - это очень тормозной и голимый метод рисования 2D.

vlactelin 28.09.2011 15:02

Ответ: Как сделать карту? "радар"
 
эм... да все это я знаю... полоска нужна именно этого героя, то есть в верхнем левом углу камеры всегда.
FastImage использовать для этого?

а пр стрелку... нуууу надеялся что есть какая либо отдельная команда), в блитце недавно...

moka 28.09.2011 15:48

Ответ: Как сделать карту? "радар"
 
Цитата:

Сообщение от vlactelin (Сообщение 203676)
FastImage использовать для этого?

Рекомендую его использовать для всего 2D в игре.

Цитата:

Сообщение от vlactelin (Сообщение 203676)
а пр стрелку... нуууу надеялся что есть какая либо отдельная команда), в блитце недавно...

Это математика и логика. Функции должны выполнять конкретную задачу, блиц - это не движок а инструмент, он не создан для решения задачей, он создан для предоставления инструментария и возможностей решать задачи используя его.

Если тебе нужна 3D стрелочка, то тут просто, ставишь 3D стрелку над игроком и делаешь ей PointEntity на цель. Она будет нацелена на цель. Если под игроком, то тут нужен спрайт с текстурой стрелки, немного больше математики - получаешь 2D вектор разницы расстояния между игроком и целью по осям X и Z (позиция_XZ_цели - позиция_XZ_игрока), далее вычисляешь угол из этого вектора, и используешь его для поворота спрайта (Yaw).
Последний вариант, это 2D стрелка, её геморнее всего делать, поэтому бери либо первый - самый простой, либо второй - посложнее.


Часовой пояс GMT +4, время: 23:33.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot