Тема: Camera
Показать сообщение отдельно
Старый 12.11.2005, 10:20   #1
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Никак не получается сделать 5 видов камер. Срочно нужна помощь

Нужен:

1) вид от 1 лица (как в практически любом action)
2) следящая камера (то есть камера сзади следит за игроком, как в 3d РГП, например), возможно двигать камеру ближе или дальше от игрока, выше или ниже(относительно игрока)
3) вид сверху ( с возможностью двигать камеру выше или ниже); при приближении камера следит за игроком.
4) так, что бы камеру можно было "оставить" на любом месте, и он следила за игроком(pointentity)
5) любая позиция камеры, настроенная игроком (к примеру с помощью мыши и клавы, потом эта настроенная камера следит за игроком) (к примеру удерживаем правую кнопу мыши и двигаем мышью, настраиваю позицию камеры выше лии ниже(вверх/вниз), ближе или дальше (вперед/назад), кнопки клавы (опционально) двигают камеру левее или правее относительно игрока.

Очень прошу помочь.
Это очень важно сделать!
Прилагаю пример. Xfighter., нам в принципе все это есть, но сложновато, что я не смог разобраться.


Global rcx#
Global rcy#
Global rcz#
Global pcx#
Global pcy#
Global pcz#

Graphics3D 800,600,32,2
SetBuffer BackBuffer()


Const typeplayer=1
Const typescene=2
Const typecamera=3


scene=CreateCube()
wall1=CreateCube()
wall2=CreateCube()
wall3=CreateCube()
wall4=CreateCube()
camera=CreateCamera()
player=CreateCube()

;------------------------------------------------;
RotateEntity camera,rcx#,rcy#,rcz#; - НАСТРОЙКИ
PositionEntity camera,pcx#,pcy#,pcz#; -НАСТРОЙКИ
PositionEntity player,25,5,20
TurnEntity camera,30,0,0
FitMesh scene,0,0,0,50,2,50
FitMesh wall1,0,2,0,2,2,50
FitMesh wall2,48,2,0,2,2,50
FitMesh wall3,0,2,0,50,2,2
FitMesh wall4,0,2,48,50,2,2
EntityColor scene ,0,255,0
EntityColor wall1,200,100,100
EntityColor wall2,200,100,100
EntityColor wall3,200,100,100
EntityColor wall4,200,100,100
EntityType scene,typescene
EntityType wall1,typescene
EntityType wall2,typescene
EntityType wall3,typescene
EntityType wall4,typescene
EntityType camera,typecamera
EntityType player,typeplayer
EntityRadius scene,.5
EntityRadius camera,5
EntityColor player,255,0,0


Collisions typeplayer,typescene,2,3


Repeat

TranslateEntity player,0,-1,0


If KeyDown(75) TurnEntity camera,0,1,0
If KeyDown(77) TurnEntity camera,0,-1,0
If KeyDown(72) TurnEntity camera,1,0,0
If KeyDown(80) TurnEntity camera,-1,0,0
If KeyDown(71) MoveEntity camera,0,0,1
If KeyDown(73) MoveEntity camera,0,0,-1
If KeyDown(200) MoveEntity player,0,0,1
If KeyDown(208) MoveEntity player,0,0,-1
If KeyDown(203)TurnEntity player,0,5,0
If KeyDown(205) TurnEntity player,0,-5,0


If KeyDown(2)
camerasrate=1
End If 

If KeyDown(3)
camerasrate=2
End If 

If KeyDown(4)
camerasrate=3
End If 

If KeyDown(5)
camerasrate=4
End If 

If KeyDown(6)
camerasrate=5
End If 

Select camerasrate


;КАМЕРА++++++++++++++++++++++++++++++++++++++++++
Case 1
End 

Case 2
End 

Case 3
End 

Case 4
End 

Case 5
End 

End Select
;КАМЕРА++++++++++++++++++++++++++++++++++++++++++

;муть;
UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End
(Offline)
 
Ответить с цитированием