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

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

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

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

Ответ
 
Опции темы
Старый 29.01.2007, 20:03   #1
JVSh
Оператор ЭВМ
 
Регистрация: 16.11.2006
Сообщений: 42
Написано одно полезное сообщение
(для 7 участников)
AlignToVector

Всем привет!

Пытаюсь побороться с AlignToVector .
Внизу код, в нём неприятный момент... Когда игрок "переваливает" на следующую плоскость, камера заметно дёргается...

В чём я напортачил?

 
Graphics3D 640,480,32,1
SetBuffer BackBuffer()
Const PL=1,GRND=2
Collisions PL,GRND,2,2
Const GRAVITY#=-0.05
plane=CreatePlane()
EntityType plane,GRND
player=CreateCube()
EntityColor player,55,55,0
EntityType player,PL
PositionEntity player,0,2,0
EntityRadius player,0
FitMesh player,-1,0,-2,2,1,4
player_head=CreateCube(player)
EntityColor player_head,55,55,0
ScaleEntity player_head,0.75,0.25,1
PositionEntity player_head,0,2.5,-1.5
player_trunk=CreateCube(player)
EntityColor player_trunk,55,55,0
ScaleEntity player_trunk,0.2,0.2,2
PositionEntity player_trunk,0,2.2,0
hill=CreateMesh()
hs=CreateSurface(hill)
hv0=AddVertex(hs,-32,0,32,0,0)
hv1=AddVertex(hs,32,0,32,1,0)
hv2=AddVertex(hs,32,0,-32,1,1)
hv3=AddVertex(hs,-32,0,-32,0,1)
hv4=AddVertex(hs,0,16,0,0.5,0.5)
ht0=AddTriangle(hs,1,4,0)
ht1=AddTriangle(hs,2,4,1)
ht2=AddTriangle(hs,3,4,2)
ht3=AddTriangle(hs,0,4,3)
hill2=CopyMesh(hill)
PositionMesh hill2,32,0,32
hill3=CopyMesh(hill)
PositionMesh hill3,50,0,-20
AddMesh hill2,hill
AddMesh hill3,hill
EntityFX hill,5
EntityType hill,GRND
tex=CreateTexture(128,128)
SetBuffer TextureBuffer( tex )
ClsColor 100,150,200
Cls
Color 0,100,155
Rect 0,0,64,64,1
Color 0,125,180
Rect 64,0,15,128,1
Rect 0,64,128,15,1
EntityTexture hill,tex
EntityTexture hill2,tex
EntityTexture hill3,tex
ScaleTexture tex,0.045,0.045
SetBuffer BackBuffer()
FreeTexture tex
FreeEntity hill2
FreeEntity hill3
 
tex=CreateTexture(128,128)
SetBuffer TextureBuffer( tex )
ClsColor 100,150,200
Cls
Color 0,100,155
Rect 0,0,64,64,1
Color 0,125,180
Rect 64,0,15,128,1
Rect 0,64,128,15,1
EntityTexture plane,tex
ScaleTexture tex,3,3
SetBuffer BackBuffer()
FreeTexture tex
 
 
camera=CreateCamera(player)
PositionEntity camera,0,10,-15
RotateEntity camera,25,0,0
CameraClsColor camera,255,255,255
CameraFogColor camera,255,255,255
CameraFogMode camera,1
CameraFogRange camera,10,100
light=CreateLight()
RotateEntity light,90,0,0
Global UP_key=200
Global DOWN_key=208
Global LEFT_key=203
Global RIGHT_key=205
myFont = LoadFont("verdana", 12, False, False, False)
SetFont myFont
 
;==========MAIN LOOP=============
.MainLoop
Repeat
cx#=EntityX(player) : x_vel=cx-prev_x : prev_x=cx
cy#=EntityY(player) : y_vel=cy-prev_y : prev_y=cy
cz#=EntityZ(player) : z_vel=cz-prev_z : prev_z=cz
mz=KeyDown(UP_key)-KeyDown(DOWN_key)
mx=KeyDown(RIGHT_key)-KeyDown(LEFT_key)
 
If EntityCollided (player,GRND)
xcl#=CollisionNX(player,1)
ycl#=CollisionNY(player,1)
zcl#=CollisionNZ(player,1)
TranslateEntity player,0,GRAVITY,0
MoveEntity player,0,0,mz*0.5
TurnEntity player,0,-mx*2,0
AlignToVector( player, xcl#, ycl#, zcl#, 2, 0.05)
Else
TranslateEntity player,x_vel,y_vel+GRAVITY,z_vel
AlignToVector(player,0,0,0,0,0.05)
EndIf
 
UpdateWorld
RenderWorld
Color 0,100,100
Text 20,20,"PlayerY= "+EntityY(player)
Text 20,30,"GRAVITY= "+GRAVITY
Flip
Until KeyHit(1)

(Offline)
 
Ответить с цитированием
Старый 29.01.2007, 22:33   #2
Errthou
Оператор ЭВМ
 
Регистрация: 22.01.2007
Сообщений: 32
Написано 0 полезных сообщений
(для 0 пользователей)
Re: AlignToVector

Юзай twinning или ищи на старом форуме функцию "резиновой подтяжки" А лучше - и то, и другое...
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CollisionX , AlignToVector ЛысыЙ_Чук-Иванчук 3D-программирование 2 26.07.2006 20:33


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


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