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

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

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

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 15.11.2011, 22:53   #1
reumep
Знающий
 
Аватар для reumep
 
Регистрация: 04.11.2011
Сообщений: 285
Написано 66 полезных сообщений
(для 159 пользователей)
Вращение оружия вместе с камерой

Создаю некий FPS, как вращать оружие вместе с камерой? И как еще реализовать повреждения от ножа(чтобы повреждения наносились лишь вргам спереди).И вот: как сделать так, чтобы при наведении курсора на NPC можно было сделать что-то(именно как реализовать проверку наведения курсора на NPC)?. А еще: как сделать лазерный прицел и надписи над NPC, которые располагаются ровно на середине?
(Offline)
 
Ответить с цитированием
Старый 15.11.2011, 23:48   #2
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Вращение оружия вместе с камерой

Кодом?

зы: попробуй все-таки почитать справку по

Entity Movement

Entity Control

Entity State

и
CameraPick

PickedX

PickedY

PickedZ

PickedNX

PickedNY

PickedNZ

PickedTime

PickedEntity

PickedSurface

PickedTriangle

CameraProject

ProjectedX

ProjectedY

ProjectedZ

EntityInView

Там есть все ответы
(Offline)
 
Ответить с цитированием
Старый 16.11.2011, 00:17   #3
Антихрист
Разработчик
 
Регистрация: 20.01.2007
Сообщений: 485
Написано 182 полезных сообщений
(для 412 пользователей)
Ответ: Вращение оружия вместе с камерой

Ответ должен был выглядеть так:
Сообщение от dsd Посмотреть сообщение

попробуй все-таки почитать справку

Там есть все ответы
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Антихрист за это полезное сообщение:
NitE (17.11.2011), Reizel (18.11.2011)
Старый 16.11.2011, 00:45   #4
FireOwl
Бывалый
 
Аватар для FireOwl
 
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений
(для 1,836 пользователей)
Ответ: Вращение оружия вместе с камерой

Ну, трудно предположить, что вопрошающий не заметил справки - ведь она специально открывается первой страницей при каждом запуске IDE.
Остается только указать на заголовки, в этой справке, если не цитировать дословно.
__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.
(Offline)
 
Ответить с цитированием
Старый 16.11.2011, 08:52   #5
Платон Александрович
Нуждающийся
 
Аватар для Платон Александрович
 
Регистрация: 05.10.2011
Адрес: Россия, Южно-Сахалинск
Сообщений: 66
Написано 42 полезных сообщений
(для 83 пользователей)
Ответ: Вращение оружия вместе с камерой

reumep
* ентити оружия позиционируешь как надо перед камерой и делаешь чайлдом камеры EntityParent(ЕнтитиОружия, ЕнтитиКамеры)

* добавляешь ентити врага на проверку пересечения лучом EntityPickMode(ЕнтитиВрага, 2), 2 - режим проверки по треугольникам модели. Во время удара пускаешь луч из камеры CameraPick(ЕнтитиКамеры, ЦентрЭкранаПоX, ЦентрЭкранаПоY). Если произошло пересечение, функция возвратит ентити. Кроме этого по пересечению проверяешь дистанцию до врага EntityDistance(ЕнтитиКамеры, ЕнтитиВрага), ну и засчитываешь попадание если враг достаточно близко

* так-же, CameraPick

* так-же CameraPick, в точке пересечения луча ставишь спрайт лазерной точки PositionEntity(ЕнтитиСпрайта, PickedX(), PickedY() и PickedZ()). Кроме этого спрайт точки нужно соориентировать по поверхности на которую он лепится, для этого берешь вектор нормали пикнутой поверхности и ориентируешь по нему спрайт AlignToVector(ЕнтитиСпрайта, -PickedNX(), -PickedNY(), -PickedNZ(), 3). Минусы нужны т.к. вектор нормали нужен в обратную сторону - от поверхности.
К оружию можно прицепить два длинных перекрещенных спрайта (лучше сразу при моделлировании сделать, отдельно от оружия чтоб можно было потом найти FindChild(ЕнтитиОружия, "Имя сетки") и скрывать\показывать)
На эти спрайты натянуть дымчатую текстуру (шум перлина в фотошопе или что-то подобное), задать полупрозрачность и нужный цвет (в редакторе). В программе двигать и\или вращать эту текстуру PositionTexture\RotateTexture. Должно получиться красиво

* Можно спроецировать позицию врага на экран CameraProject(ЕнтитиКамеры, ПозицияХ, ПозицияY, ПозицияZ) и по полученым координатам ProjectedX() и ProjectedY() нарисовать что надо. (Но 2D в блице не имеет аппаратной поддержки, очень тормозное, так что можешь заюзать библиотеку FastImage)
А лучше делать CameraPick всегда и если пересечение с npc произошло, отобразить EntityShow(СпрайтЕнтити) и спозиционировать спрайт с надписью по координатам npc. Спрайту также нужно выставить порядок отрисовки EntityOrder(ЕнтитиСпрайта, -1), чтоб он рисовался поверх всего.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Платон Александрович за это полезное сообщение:
reumep (16.11.2011), St_AnGer (16.11.2011)
Старый 16.11.2011, 11:47   #6
Leowey
Знающий
 
Аватар для Leowey
 
Регистрация: 08.11.2010
Адрес: Москва
Сообщений: 285
Написано 78 полезных сообщений
(для 182 пользователей)
Ответ: Вращение оружия вместе с камерой

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

Ответ прост! Справка то на английском!!
(Offline)
 
Ответить с цитированием
Старый 16.11.2011, 13:32   #7
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Вращение оружия вместе с камерой

Сообщение от Leowey Посмотреть сообщение
Ответ прост! Справка то на английском!!
Слова "программирование" и "программист" подразумевают владение английским языком хотя бы на тройку (чтение и перевод)...

Платон Александрович дал подробный ответ по теме, за что ему плюсую.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Старый 16.11.2011, 14:22   #8
Leowey
Знающий
 
Аватар для Leowey
 
Регистрация: 08.11.2010
Адрес: Москва
Сообщений: 285
Написано 78 полезных сообщений
(для 182 пользователей)
Ответ: Вращение оружия вместе с камерой

Сообщение от St_AnGer Посмотреть сообщение


Слова "программирование" и "программист" подразумевают владение английским языком хотя бы на тройку (чтение и перевод)...

Платон Александрович дал подробный ответ по теме, за что ему плюсую.
Я, конечно, в курсе, но судя по вопросам топикстартера он программист начинающий .
(Offline)
 
Ответить с цитированием
Старый 16.11.2011, 17:52   #9
reumep
Знающий
 
Аватар для reumep
 
Регистрация: 04.11.2011
Сообщений: 285
Написано 66 полезных сообщений
(для 159 пользователей)
Ответ: Вращение оружия вместе с камерой

Спасибо, конечно, справку я читал. Проблема в том, что я не знаю, что нужно именно вращать мышью, камеру, или модель оружия. Дело в том, что я пользуюсь такой командой
TurnEntity world\cam,MouseYSpeed(),0,0
TurnEntity player\model,0,-MouseXSpeed(),0
И если вращать только камеру, то она скособочивается
(Offline)
 
Ответить с цитированием
Старый 16.11.2011, 18:00   #10
reumep
Знающий
 
Аватар для reumep
 
Регистрация: 04.11.2011
Сообщений: 285
Написано 66 полезных сообщений
(для 159 пользователей)
Ответ: Вращение оружия вместе с камерой

И как сделать адекватный прыжок и адекватный скайбокс?
(Offline)
 
Ответить с цитированием
Старый 16.11.2011, 18:37   #11
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Вращение оружия вместе с камерой

И как сделать адекватный прыжок и адекватный скайбокс?
Да поможет дебе FOR
Скай.берёшь куб с текстурой,скайлишь его и EntityFx cube,16
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 16.11.2011, 19:06   #12
reumep
Знающий
 
Аватар для reumep
 
Регистрация: 04.11.2011
Сообщений: 285
Написано 66 полезных сообщений
(для 159 пользователей)
Ответ: Вращение оружия вместе с камерой

Сообщение от Костян Посмотреть сообщение
Да поможет дебе FOR
Скай.берёшь куб с текстурой,скайлишь его и EntityFx cube,16
да, только вот на куб накладывается одна текстура, а я имел в виду 6 разных текстур по бокам, внизу, вверху
(Offline)
 
Ответить с цитированием
Старый 16.11.2011, 19:12   #13
reumep
Знающий
 
Аватар для reumep
 
Регистрация: 04.11.2011
Сообщений: 285
Написано 66 полезных сообщений
(для 159 пользователей)
Ответ: Вращение оружия вместе с камерой

И вот еще вопрос: как сделать медленное затемнение или обратный затемнению процесс? И как реализовать "поднятие камеры": персонаж встает, тут обратный затемнению процесс. А когда персонаж умер, тут камера как бы падает на пол, экран затемняется. Как это сделать?
(Offline)
 
Ответить с цитированием
Старый 17.11.2011, 18:06   #14
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Вращение оружия вместе с камерой

http://boolean.name/index.php?option...13&I temid=69

Тут есть скайбокс и неадекватный прыжок.
(Offline)
 
Ответить с цитированием
Старый 17.11.2011, 18:43   #15
reumep
Знающий
 
Аватар для reumep
 
Регистрация: 04.11.2011
Сообщений: 285
Написано 66 полезных сообщений
(для 159 пользователей)
Ответ: Вращение оружия вместе с камерой

Function LoadSkyBox( file$ ) ; Скайбокс
	m=CreateMesh()
	;front face
	b=LoadBrush( file$+"_FR.dds",49 )
	s=CreateSurface( m,b )
	AddVertex s,-1,+1,-1,0,0:AddVertex s,+1,+1,-1,1,0
	AddVertex s,+1,-1,-1,1,1:AddVertex s,-1,-1,-1,0,1
	AddTriangle s,0,1,2:AddTriangle s,0,2,3:
	FreeBrush b
	;right face
	b=LoadBrush( file$+"_LF.dds",49 )
	s=CreateSurface( m,b )
	AddVertex s,+1,+1,-1,0,0:AddVertex s,+1,+1,+1,1,0
	AddVertex s,+1,-1,+1,1,1:AddVertex s,+1,-1,-1,0,1
	AddTriangle s,0,1,2:AddTriangle s,0,2,3
	FreeBrush b
	;back face
	b=LoadBrush( file$+"_BK.dds",49 )
	s=CreateSurface( m,b )
	AddVertex s,+1,+1,+1,0,0:AddVertex s,-1,+1,+1,1,0
	AddVertex s,-1,-1,+1,1,1:AddVertex s,+1,-1,+1,0,1
	AddTriangle s,0,1,2:AddTriangle s,0,2,3
	FreeBrush b
	;left face
	b=LoadBrush( file$+"_RT.dds",49 )
	s=CreateSurface( m,b )
	AddVertex s,-1,+1,+1,0,0:AddVertex s,-1,+1,-1,1,0
	AddVertex s,-1,-1,-1,1,1:AddVertex s,-1,-1,+1,0,1
	AddTriangle s,0,1,2:AddTriangle s,0,2,3
	FreeBrush b
	;top face
	b=LoadBrush( file$+"_UP.dds",49 )
	s=CreateSurface( m,b )
	AddVertex s,-1,+1,+1,0,1:AddVertex s,+1,+1,+1,0,0
	AddVertex s,+1,+1,-1,1,0:AddVertex s,-1,+1,-1,1,1
	AddTriangle s,0,1,2:AddTriangle s,0,2,3
	FreeBrush b
	;bottom face	
	b=LoadBrush( file$+"_DN.dds",49 )
	If b=0 b=CreateBrush (0,30,50)
	s=CreateSurface( m,b )
	AddVertex s,-1,-1,-1,1,0:AddVertex s,+1,-1,-1,1,1
	AddVertex s,+1,-1,+1,0,1:AddVertex s,-1,-1,+1,0,0
	AddTriangle s,0,1,2:AddTriangle s,0,2,3
	FreeBrush b
	ScaleMesh m,1000000,1000000,1000000
	FlipMesh m
	EntityFX m,1+8
	Return m
End Function

Почему так сложно
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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