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=8364)

Unodeya 23.05.2009 19:15

Вид от третьего лица и камера
 
Вот у меня есть моя наработка. Мне нужно чтобы камера поворачивалась туда куда игрок, когда игрок движется вперед. А когда игрок стоит камера могла вертется вокруг него, смотреть вверх и вниз с ограниченным углом. Я начинающий поэтому для меня немного сложновато. Заранее спасибо за ответ!! Супер сайт и форум. Помогите пожалуйста...

Code

Graphics3D 1024,768,32,2
SetBuffer BackBuffer()
Global Quit=False
Global Player
Global Cube
Global Cam

Global user_pivot=CreatePivot()
Global Rot_camera=0

Cube=CreateCube()
PositionEntity Cube,0,5,0

Player=CreateCube()

Cam=CreateCamera()
PositionEntity cam,0,5,-10 ;

lit=CreateLight()

Repeat

If KeyDown(200)=1 Then
TurnEntity Player,0,-MouseXSpeed(),0,0 ; Как сделать чтобы эти две функции работали вместе, куда смотрит камера туда игрок?
TurnEntity User_Pivot,0,MouseXSpeed(),0,0
MoveEntity player,0,0,.1
EndIf

If KeyDown(208) MoveEntity player,0,0,-.1

If KeyDown(203) MoveEntity player,-.1,0,0

If KeyDown(205) MoveEntity player,.1,0,0

TurnEntity user_pivot,0,-MouseXSpeed(),0,0 ; Как сделать чтобы камера смотрела вверх и вниз с ограниченным углом

MoveMouse GraphicsWidth()*0.5,GraphicsHeight()*0.5

PositionEntity user_pivot,EntityX(Player),EntityY(Player),EntityZ (Player)
EntityParent cam,user_pivot

UpdateWorld
RenderWorld

If KeyHit(1)=1 Then Quit = True
Flip
Until Quit

End

karry 23.05.2009 19:43

Ответ: Вид от третьего лица и камера
 
Цитата:

Как сделать чтобы эти две функции работали вместе, куда смотрит камера туда игрок?
Создаешь второй пивот, ставишь чуть впереди игрока и парентишь к игроку, а потом
Код:

If KeyDown(200)
      MoveEntity Player
      PointEntity camera,pivot2

Цитата:

Как сделать чтобы камера смотрела вверх и вниз с ограниченным углом
Привязываешь камеру к пивоту, пивот вращает камеру влево-вправо, а сама камера вращается вверх-вниз.
Создаешь переменную, например campitch :
Код:

campitch=EntityPitch(camera)
If campitch>=80
    campitch=80
    RotateEntity camera,campitch,0,0


Unodeya 24.05.2009 11:25

Ответ: Вид от третьего лица и камера
 
Спасибо, но у меня что то не получается!(( Немог бы ты на основе моего кода вставить это) Заранее спасибо!

Sleepybear 25.05.2009 14:40

Ответ: Вид от третьего лица и камера
 
Цитата:

куда смотрит камера туда игрок
Код:


        PointEntity Camera, Player

Цитата:

камера смотрела вверх и вниз с ограниченным углом
Код:

angle#=70
        mys = MouseYSpeed() * 1
        If EntityPitch(camera) + mys < -angle#
                xang = -angle#
        ElseIf EntityPitch(camera) + mys > angle#
                xang = angle#
        Else
                xang = EntityPitch(camera) + mys
        EndIf
          RotateEntity camera, xang, 0, 0



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

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