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

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

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

PureBasic Мощный кросс-платформенный язык среднего уровня на основе BASIC. Подходит для решения широкого круга задач.

Ответ
 
Опции темы
Старый 07.06.2013, 23:34   #1
mtaracing
Нуждающийся
 
Аватар для mtaracing
 
Регистрация: 22.05.2013
Сообщений: 53
Написано 3 полезных сообщений
(для 26 пользователей)
Пивот для камеры

Здравствуйте, столкнулся с проблемой, ни как не получается сделать пивот для камеры, то есть чтобы камера не крутилась на 360 градусов по оси Y, пробовал разобрать принцип работы из примеров в папке DEMO, но там очень большой код, и много лишнего. Пробовал сам получать угол поворота камеры и возвращать его. но ничего не получается. Кому не сложно напишите пожалуйста пример. Заранее спасибо.
(Offline)
 
Ответить с цитированием
Старый 08.06.2013, 12:30   #2
Кирпи4
Социал-сычевист
 
Аватар для Кирпи4
 
Регистрация: 24.06.2011
Сообщений: 611
Написано 342 полезных сообщений
(для 1,359 пользователей)
Ответ: Пивот для камеры

Плюнь, в пурике огр полное говно. Юзай ксорс или ещё что нибудь
__________________


(Offline)
 
Ответить с цитированием
Старый 08.06.2013, 12:40   #3
mtaracing
Нуждающийся
 
Аватар для mtaracing
 
Регистрация: 22.05.2013
Сообщений: 53
Написано 3 полезных сообщений
(для 26 пользователей)
Ответ: Пивот для камеры

Сообщение от Кирпи4 Посмотреть сообщение
Плюнь, в пурике огр полное говно. Юзай ксорс или ещё что нибудь
Ну я бы так не сказал. По сабжу кто нибудь поможет? (Обидно что в Blitz, это реализуется несколькими строчками кода...)
(Offline)
 
Ответить с цитированием
Старый 08.06.2013, 23:03   #4
mtaracing
Нуждающийся
 
Аватар для mtaracing
 
Регистрация: 22.05.2013
Сообщений: 53
Написано 3 полезных сообщений
(для 26 пользователей)
Ответ: Пивот для камеры

Вот, сам сделал простой пример, исходя из примеров.

IncludeFile "Screen3DRequester.pb"

Structure Vector3
x.f
y.f
z.f
EndStructure

Structure s_Entity
EntityBody.i
Fov.f
MainNode.i  
CameraNode.i  
EndStructure

Declare HandleEntity(*Entity.s_Entity)
Define Robot.s_Entity

If InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
Parse3DScripts()
If Screen3DRequester()

Add3DArchive("Textures"            , #PB_3DArchive_FileSystem)
Add3DArchive("Models"              , #PB_3DArchive_FileSystem)
Add3DArchive("Packs/waterworld.zip", #PB_3DArchive_Zip)
CreateMaterial(0, LoadTexture(0, "dirt.jpg"))

LoadMesh   (0, "robot.mesh")
CreateEntity(0, MeshID(0), #PB_Material_None, 0, 0, 0)
HideEntity(0, 1)

LoadMesh(2, "waterworld.mesh")
CreateEntity(2, MeshID(2), MaterialID(0))
    
With Robot
\MainNode   = CreateNode(#PB_Any) 
\CameraNode = CreateNode(#PB_Any,  0, 80,  0)

AttachNodeObject(\MainNode  , NodeID(\CameraNode))   
EndWith

CreateCamera(0, 0, 0, 100, 100)
AttachNodeObject(Robot\CameraNode, CameraID(0))
CreateLight(0, RGB(0, 255, 255), 200, 100, 200, #PB_Light_Point)

Repeat
Screen3DEvents()

HandleEntity(@Robot)
RenderWorld()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Else
MessageRequester("Error", "The 3D Engine can't be initialized")
EndIf
End


Procedure HandleEntity(*Entity.s_Entity)
Protected.Vector3 Forward, Strafe, PosMain, PosDir, PosStrafe 
Protected.f MouseX, MouseY
Static  Rot.Vector3


With *Entity

If  ExamineMouse()
MouseX = -(MouseDeltaX()/200) * \Fov
MouseY = -(MouseDeltaY()/200) * \Fov
Rot\z = 0
Rot\y + MouseX

If NodePitch(\CameraNode) < 50 And MouseY > 0
Rot\x + MouseY
ElseIf NodePitch(\CameraNode) > -50 And MouseY < 0 
Rot\x + MouseY
EndIf  

If \Fov < 50
\Fov + 2
EndIf
EndIf
      
If ExamineKeyboard()
Rot\x * 0.30
Rot\y * 0.30
Rot\z * 0.30
EndIf

RotateEntity(\EntityBody,     0, Rot\y, 0, #PB_Relative)
RotateNode(\CameraNode  , Rot\x,     0, 0, #PB_Relative)
RotateNode(\MainNode, 0, EntityYaw(\EntityBody), 0) 
EndWith   
EndProcedure
(Offline)
 
Ответить с цитированием
Старый 11.06.2013, 21:40   #5
mtaracing
Нуждающийся
 
Аватар для mtaracing
 
Регистрация: 22.05.2013
Сообщений: 53
Написано 3 полезных сообщений
(для 26 пользователей)
Ответ: Пивот для камеры

Заметил в этом коде проблему ,если установить камеру в точку, то она не крутится в точке, а смещается с точки и крутится, как решить такую проблему не знаю, уже не один вечер сижу разбираюсь...
(Offline)
 
Ответить с цитированием
Старый 14.06.2013, 15:57   #6
Кирпи4
Социал-сычевист
 
Аватар для Кирпи4
 
Регистрация: 24.06.2011
Сообщений: 611
Написано 342 полезных сообщений
(для 1,359 пользователей)
Ответ: Пивот для камеры

Чувак, я серьёзно - огр неудобный. Вот, тебе в помощь:
http://forum.boolean.name/showpost.p...&postcount=124
и начинай покорять геймдев с ксорсом
__________________


(Offline)
 
Ответить с цитированием
Старый 17.06.2013, 11:55   #7
mtaracing
Нуждающийся
 
Аватар для mtaracing
 
Регистрация: 22.05.2013
Сообщений: 53
Написано 3 полезных сообщений
(для 26 пользователей)
Ответ: Пивот для камеры

Да норм всё. Уже разобрался.
(Offline)
 
Ответить с цитированием
Старый 17.06.2013, 18:32   #8
mtaracing
Нуждающийся
 
Аватар для mtaracing
 
Регистрация: 22.05.2013
Сообщений: 53
Написано 3 полезных сообщений
(для 26 пользователей)
Ответ: Пивот для камеры

Кстати, кому будет нужно, пишите расскажу и покажу.
(Offline)
 
Ответить с цитированием
Старый 17.06.2013, 19:34   #9
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Пивот для камеры

Кому-нибудь когда-нибудь в любом случае пригодится - форум для того и нужен, что бы делиться полезными мыслями с другими. Так что пиши, выкладывай, не стесняйся. Чем подробнее, тем больше шансов что кому то поможешь. Могут конечно налететь "знатоки" и обплевать, но критика никогда не была лишней, даже если она плохая.
__________________
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)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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