|
3D-программирование Вопросы, касающиеся программирования 3D мира |
23.06.2009, 18:49
|
#1
|
Оператор ЭВМ
Регистрация: 30.01.2008
Адрес: Щелково-3
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
Глюки камеры блик и вращении её вокруг перса
Задача моя:
Сделать камеру с солнечными бликами и её вращение вокруг персонажа мышкой при зажатой какой нть клавише и при отпускании этой клавиши камера должна возвращаться за спину персонажа.
Делал:
взял код из примера Sun.rar
И вот что получилось:
user_piv=CreatePivot ()
PositionEntity user_piv_emat,-1,2,0
EntityType user_piv,user_col
Model=CreateCube (user_piv)
RotateEntity Model,0,0,0
EntityColor Model,Int(Rnd(255)),Int(Rnd(255)),Int(Rnd(255))
ViewX = GraphicsWidth();<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
ViewY = GraphicsHeight();<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
ViewAspect# = Float(ViewX)/Float(ViewY);<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Camera = CreateCamera(Model)
;CameraRange Camera, 1, 5000
spritecamera = Camera;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
spritepivot = CreateSpritePivot(spritecamera,1.01) ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
CameraClsColor camera,0,0,0
PositionEntity camera,0,4,-8
CameraRange camera,0.1,5000
Sun = CreatePivot()
Light = CreateLight(2, Sun)
PositionEntity Sun, -549, 1015, 33, 1
SetupFlares("lens-flares.jpg") ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
PointEntity Camera, Sun
после Repeat
UpdateFlare(Camera, Sun) ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
mx#=CurveValue(MouseXSpeed()*0.4,mx,11)
my#=CurveValue(MouseYSpeed()*0.4,my,11)
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
pitch#=EntityPitch(user_piv)
yaw#=EntityYaw(user_piv)
pitch=pitch+my
yaw=yaw-mx
If pitch>89 pitch=89
If pitch<-89 pitch=-89
RotateEntity user_piv,0,yaw,0
;RotateEntity Camera,0,yaw,0
TurnEntity Camera,pitch,0,0
Проблема:
Камера при старте где то с боку и вращается вокруг какой та точки до тех пор пока камера не будет опушена взглядом в землю тогда камера оказывается там где должна(позади перса и при движении мыши перс поворачивается)
Если я дописываю код для вращения
Graphics3D 800,600 , 32, 2
Global user_pivot=CreatePivot() ; Создаешь точку
cri=CreateLight ()
cam=CreatePlane()
cam_tex=LoadTexture ("807331659.jpg")
ScaleTexture cam_tex,4,4
EntityTexture cam,cam_tex
camera = CreateCamera ()
Model=CreateCube ()
EntityColor Model,Int(Rnd(255)),Int(Rnd(255)),Int(Rnd(255))
Model1=CreateCube ()
EntityColor Model1,Int(Rnd(235)),Int(Rnd(255)),Int(Rnd(215))
PositionEntity Model1,10,0,1
PositionEntity camera,0,5,-10 ; Ставим камеру в первоначальные координаты (Относительно твоего игрока ) . Получается , что камера находится чуть вверху и позади .
;Далее пишешь в цикле
b1#=0;предельный угол
While Not KeyDown( 1 )
mx=MouseXSpeed()
PositionEntity user_pivot,EntityX(Model),EntityY(Model),EntityZ(Model) ; Делаем так , чтобы точка всегда была в координатах "YourPlayer" (это твой игрок) . Но не вертелась вместе с игроком .
If MouseDown (2) ;button = 1: Левая кнопка, 2: Правая кнопка, 3: Средняя кнопка
RotCamera=1
Else
RotCamera=0
EndIf
If RotCamera=1 Then
EntityParent camera,user_pivot ; Прикрепляем твою камеру к созданной точке .
;TurnEntity user_pivot,0,2,0
TurnEntity user_pivot,0,-mx,0
EndIf
If RotCamera=0 Then
RotateEntity user_pivot,0,0,0
;Abs(EntityYaw#(pivot1))
EndIf
UpdateWorld()
RenderWorld()
Text 0,20,"Yaw: "+EntityYaw#(user_pivot)
Flip
Wend
;----------------------------
End
камера двигается по прямой и после отпускания клавиши вращается перс а не поворачиваться
Как лечить этот баг и сделать осмотр персонажа камерой?
|
(Offline)
|
|
23.06.2009, 20:46
|
#2
|
ПроЭктировщик
Регистрация: 13.02.2009
Сообщений: 134
Написано 21 полезных сообщений (для 22 пользователей)
|
Ответ: Глюки камеры блик и вращении её вокруг перса
я напимер не понял ничего, Причем тут Блики солнца и вращение камеры?
|
(Offline)
|
|
23.06.2009, 21:24
|
#3
|
Оператор ЭВМ
Регистрация: 30.01.2008
Адрес: Щелково-3
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Глюки камеры блик и вращении её вокруг перса
В том что все это появилось только после добавление бликов от солнца
|
(Offline)
|
|
23.06.2009, 22:42
|
#4
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Ответ: Глюки камеры блик и вращении её вокруг перса
что всё это ?
|
(Offline)
|
|
24.06.2009, 14:54
|
#5
|
Оператор ЭВМ
Регистрация: 30.01.2008
Адрес: Щелково-3
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Глюки камеры блик и вращении её вокруг перса
Так, не кто не понял баг.
Тогда смотрите все в живую(кому интересно) тут (архив)
P.S.Использован ньютон(частично)
Последний раз редактировалось Dark_Fox, 24.06.2009 в 16:03.
|
(Offline)
|
|
24.06.2009, 14:57
|
#6
|
ПроЭктировщик
Регистрация: 09.10.2008
Адрес: Казань
Сообщений: 137
Написано 7 полезных сообщений (для 9 пользователей)
|
Ответ: Глюки камеры блик и вращении её вокруг перса
твой перс - это желтый куб? Если да, то он никуда не вращаеться, а стоит как вкопанный.
|
(Offline)
|
|
24.06.2009, 16:05
|
#7
|
Оператор ЭВМ
Регистрация: 30.01.2008
Адрес: Щелково-3
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Глюки камеры блик и вращении её вокруг перса
опусти камеру вниз(чуть ли не в землю) и камера встанет на место.
это и есть баг.
|
(Offline)
|
|
24.06.2009, 16:13
|
#8
|
ПроЭктировщик
Регистрация: 13.02.2009
Сообщений: 134
Написано 21 полезных сообщений (для 22 пользователей)
|
Ответ: Глюки камеры блик и вращении её вокруг перса
14 метров, качать из за пары строк никто не будет.
вращение вокруг персонажа мышкой при зажатой какой нть клавише и при отпускании этой клавиши камера должна возвращаться за спину персонажа
|
Graphics3D 1024, 768, 32,1:SetBuffer BackBuffer():User=CreateCube():ScaleEntity User,1,.1,3:EntityColor User,255,255,128:PivotCam=CreatePivot():PivotUser=CreatePivot():Cam = CreateCamera(PivotCam):Plane = CreatePlane():MoveEntity Plane, 0, -1,0:Tex = LoadTexture("textura.JPG"):ScaleTexture Tex, 10, 10:EntityTexture Plane, Tex:FreeTexture tex:While Not KeyDown(1):mx#=CurveValue(-MouseXSpeed()*0.4,mx,11):MoveMouse GraphicsWidth()/2,GraphicsHeight()/2:TurnEntity Cam,0,mx#,0:If MouseDown(2):EntityParent Cam,PivotUser:PositionEntity Cam,0,3,-5:PointEntity Cam,User:TurnEntity PivotUser,0,mx#,0:Else:EntityParent Cam,PivotCam:PositionEntity Cam,0,0,0:RotateEntity Cam,0,0,0:EndIf:PositionEntity PivotUser,EntityX(User),EntityY(User),EntityZ(User):PositionEntity PivotCam,EntityX(User),EntityY(User)+3,EntityZ(User)-5
If KeyDown(17) MoveEntity User, 0, 0, 1
If KeyDown(31) MoveEntity User, 0, 0, -1
If KeyDown(30) MoveEntity User, -1, 0, 0
If KeyDown(32) MoveEntity User, 1, 0, 0
RenderWorld():Flip:Wend:End
Function CurveValue#(newvalue#,oldvalue#,increments )
If increments>1 oldvalue#=oldvalue#-(oldvalue#-newvalue#)/increments
If increments<=1 oldvalue=newvalue
Return oldvalue#
End Function
ты это хотел?
Правый тырк мышем.
Только текстуру подправь там, а то не видно движения
|
(Offline)
|
|
24.06.2009, 16:30
|
#9
|
Оператор ЭВМ
Регистрация: 30.01.2008
Адрес: Щелково-3
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Глюки камеры блик и вращении её вокруг перса
от части да.
но главная проблема в камере в обычном режиме(игровом)
|
(Offline)
|
|
24.06.2009, 16:33
|
#10
|
ПроЭктировщик
Регистрация: 13.02.2009
Сообщений: 134
Написано 21 полезных сообщений (для 22 пользователей)
|
Ответ: Глюки камеры блик и вращении её вокруг перса
Сообщение от Dark_Fox
от части да.
но главная проблема в камере в обычном режиме(игровом)
|
Какая проблема?
|
(Offline)
|
|
24.06.2009, 16:57
|
#11
|
Оператор ЭВМ
Регистрация: 30.01.2008
Адрес: Щелково-3
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Глюки камеры блик и вращении её вокруг перса
камера двигается по кругу на определенном расстоянии от перса. и только если я опускаю камеру, так что вижу землю, камера начинает работать нормально( при движении мыши(лево-право) поворачивается персонаж и меняется угол(вперед-назад) обзора)
|
(Offline)
|
|
24.06.2009, 17:08
|
#12
|
ПроЭктировщик
Регистрация: 13.02.2009
Сообщений: 134
Написано 21 полезных сообщений (для 22 пользователей)
|
Ответ: Глюки камеры блик и вращении её вокруг перса
Я бы пребложил удалить лишнее из кода и переписать все ручками, а после добавлять физику и блики. Скорее всего у тебя там с переменными путаница
|
(Offline)
|
|
24.06.2009, 17:24
|
#13
|
Оператор ЭВМ
Регистрация: 30.01.2008
Адрес: Щелково-3
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Глюки камеры блик и вращении её вокруг перса
все так и сделано.
|
(Offline)
|
|
24.06.2009, 17:35
|
#14
|
ПроЭктировщик
Регистрация: 13.02.2009
Сообщений: 134
Написано 21 полезных сообщений (для 22 пользователей)
|
Ответ: Глюки камеры блик и вращении её вокруг перса
Судя по описанием ошибка в коде. (я код не видел)
Или не внимателно писал, или невнимательно копипастил.
|
(Offline)
|
|
24.06.2009, 17:45
|
#15
|
Оператор ЭВМ
Регистрация: 30.01.2008
Адрес: Щелково-3
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Глюки камеры блик и вращении её вокруг перса
с кодом блик наверное 2 вариант
а с общим кодом если только 1 вариант
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:09.
|