Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 22.04.2012, 16:59   #1
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Круглый радар

делал я дальше один из своих проектов и нашёл новую проблему

это радар мне он нужен не квадраный а круглый
как тут (оттуда и взял текстуры)
пикча в аттаче
но я таки ничего непридумал как сделать такой радар
для рисовки пользуюсь Fastimage
Миниатюры
Нажмите на изображение для увеличения
Название: ringa.png
Просмотров: 1065
Размер:	6.2 Кб
ID:	16683  Нажмите на изображение для увеличения
Название: Radar-GTA4-wanted.png
Просмотров: 1098
Размер:	67.5 Кб
ID:	16684  
(Offline)
 
Ответить с цитированием
Старый 22.04.2012, 17:25   #2
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: Круглый радар

Сообщение от tirarex Посмотреть сообщение
делал я дальше один из своих проектов и нашёл новую проблему

это радар мне он нужен не квадраный а круглый
как тут (оттуда и взял текстуры)


но я таки ничего непридумал как сделать такой радар
для рисовки пользуюсь Fastimage
Первая картинка не грузится.
Юзай синусы и косинусы и угол поворота игрока.
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Старый 22.04.2012, 17:27   #3
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Круглый радар

мне нужно идею как реализовать круглый радар вот и всё
(Offline)
 
Ответить с цитированием
Старый 22.04.2012, 18:15   #4
mauNgerS
Разработчик
 
Аватар для mauNgerS
 
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений
(для 670 пользователей)
Ответ: Круглый радар

Делай квадратный и используй маску чтобы скрыть лишнее
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (23.04.2012)
Старый 22.04.2012, 18:15   #5
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений
(для 790 пользователей)
Ответ: Круглый радар

А у тебя есть идея как сделать радар квадратным?
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием
Старый 22.04.2012, 18:40   #6
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: Круглый радар

Сообщение от Igor Посмотреть сообщение
А у тебя есть идея как сделать радар квадратным?
Это тоже просто. Только обработка будет с учетом не дистанции, а с учетом нахождения в площади радара.
Как я понял у автора проблема не столько с радаром сколько с поворотом карты. Принцип будет тот же. Только вместо точки будет центр-начало координат от которого будет отчитываться перемещение на экране.
Подробнее распиши проблему.
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Старый 22.04.2012, 18:45   #7
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Круглый радар

мне надо чтоб по середине была стрелка - игрок
на фоне была карта и всё
карта некрутится
крутится сама стрелка на ней
(Offline)
 
Ответить с цитированием
Старый 22.04.2012, 18:54   #8
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: Круглый радар

Сообщение от tirarex Посмотреть сообщение
мне надо чтоб по середине была стрелка - игрок
на фоне была карта и всё
карта некрутится
крутится сама стрелка на ней
Поворачиваешь стрелку на угол поворота перса в мире. Карту двигаешь относительно перса (его смещение в мире передаешь карте). Вот и все. Остальное прячешь с помощью маски.
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Старый 22.04.2012, 19:55   #9
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Круглый радар

а можно поподробнее как двигать карту и неоткожусь от маленького примера с текстурой из первого поста
(Offline)
 
Ответить с цитированием
Старый 22.04.2012, 21:11   #10
Halk-DS
Разработчик
 
Аватар для Halk-DS
 
Регистрация: 09.08.2006
Адрес: Украина
Сообщений: 431
Написано 65 полезных сообщений
(для 53 пользователей)
Ответ: Круглый радар

В Блице есть оператор:
DrawImageRect image,x,y,rect_x,rect_y,rect_width,rect_height,[frame]
Изучи его и посмотри в FastImage есть аналог. Потом берешь рисуешь в фотошопе карту (или генерируешь рисунок программно, это как сам задумаешь) загружаешь рисунок в оперативу, и рисуешь необходимый кусок карты используя тот оператор что я тебе дал. Все просто как дверь, а как говорили парни, хочешь круглую карту делай маской.
Пример:
111111111111111
111111101111111
111111000111111
111110000011111
111100000001111
111000000000111
111100000001111
111110000011111
111111000111111
111111101111111
111111111111111
Представь что это рисунок, теперь представь что нарисован не ромбик а круглешок. Пикселы под цифрой 1 - белый цвет. Пикселы под номером 0-черные. Маскируешь в рисунке 0 (черный) цвет. И рисунок начинает быть похожим на белую рамку. Накладываешь эту белую рамку на рисунок с картой, а на рисунке с картой маскируешь белый цвет. Вуаля - круглая белая рамка исчезает на рисунке с картой и мы имеем круглую карту.
п.с. Не вздумай юзать EntityDistance для проверки радиуса около перса. Это ш проекция в которой ось У игнорится, а в команде EntityDistance она учитывается. Напиши сам функцию:
Function Distance#(X1#,Z1,X2#,Z2#)
Return Sqr((X2-X1)^2+(Z2-Z1)^2)
End Function
И будет тебе счастье!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
tirarex (23.04.2012)
Старый 22.04.2012, 21:15   #11
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: Круглый радар

Graphics3D 1024,768,32,1
SetBuffer BackBuffer()

Global Player=CreateCube()
Cam=CreateCamera(Player): PositionEntity Cam,0,3,-5
Global Cube=CreateCube(): PositionEntity Cube,2,0,10: EntityColor Cube,255,0,0

Global RadarMap=CreateImage(512,512)
SetBuffer ImageBuffer(RadarMap)
	For i=0 To 10
		Color Rand(255), Rand(255), Rand(255)
		Rect Rand(0,512),Rand(0,512), Rand(0,512),Rand(0,512)
	Next 
SetBuffer BackBuffer()
MidHandle RadarMap

Global RadarMask=CreateImage(256,256)
SetBuffer ImageBuffer(RadarMask)
	Color 0,0,0
	Rect 0,0,256,256
	Color 255,255,255
	Oval 0,0,256,256
SetBuffer BackBuffer()
MaskImage RadarMask,255,255,255

Function Radar()
	Local Image=CreateImage(256,256)
	SetBuffer ImageBuffer(Image)
		Cls
		DrawImage RadarMap,-(512/400)*EntityX(Player),(512/400)*EntityZ(Player)
		Color 255,0,0
                ; Куб впереди игрока на радаре определяется относительно самого игрока
		Rect (256/2)+(512/400)*(EntityX(Cube)-EntityX(Player)),(256/2)-(512/400)*(EntityZ(Cube)-EntityZ(Player)),5,5
                ;Линия указывающая направление. В твоем случае нужно просто установить угол.
		Line 256/2,256/2,(256/2)+Cos(-1*(EntityYaw(Player)+90))*10,(256/2)+Sin(-1*(EntityYaw(Player)+90))*10
		DrawImage RadarMask,0,0
	SetBuffer BackBuffer()
	DrawImage Image,(GraphicsWidth()/3)*2,(GraphicsHeight()/3)*2
End Function

Repeat
If KeyDown(17) MoveEntity Player,0,0,.5
If KeyDown(31) MoveEntity Player,0,0,-.5
If KeyDown(30) TurnEntity Player,0,1,0
If KeyDown(32) TurnEntity Player,0,-1,0
UpdateWorld
RenderWorld
Text 10,10,EntityYaw(Player)
Radar()
;DrawImage RadarMap,0,0
;DrawImage RadarMask,0,0
Flip
Until KeyHit(1)
End
Пояснения: 400- реальный размер карты, 512 ее рисунка.
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Gector за это полезное сообщение:
Hulk-DS (22.04.2012), tirarex (23.04.2012)
Старый 23.04.2012, 00:03   #12
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Круглый радар

При помощи DrawPoly делаешь круг из полигонов, на него вешаешь текстуру карты. Смещением текстурных координат делаешь соответственно смещение (да можно и поворот) карты на радаре.
Значки - поверх уже обычным способом.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
Amatsu (23.04.2012), Жека (24.04.2012)
Старый 23.04.2012, 01:29   #13
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: Круглый радар

Сообщение от ABTOMAT Посмотреть сообщение
При помощи DrawPoly делаешь круг из полигонов, на него вешаешь текстуру карты. Смещением текстурных координат делаешь соответственно смещение (да можно и поворот) карты на радаре.
Значки - поверх уже обычным способом.
Только если у тебя FastImage
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Старый 23.04.2012, 10:47   #14
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Круглый радар

спасибо всем
особенно
Hulk-DS за описание способа
и
Gector за пример
(Offline)
 
Ответить с цитированием
Старый 23.04.2012, 11:40   #15
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Круглый радар

Сообщение от Randomize Посмотреть сообщение
Только если у тебя FastImage
ОП-пост: для рисовки пользуюсь Fastimage
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Randomize (23.04.2012)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com