Показать сообщение отдельно
Старый 09.06.2010, 18:22   #11
painter
AnyKey`щик
 
Регистрация: 09.06.2010
Сообщений: 8
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: поворот меша

Global speed#=0
Global angle#=0

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

cam=CreateCamera()
PositionEntity cam,0,5,-10
CameraRange cam,.1,300000000

lit=CreateLight()
TurnEntity lit,0,270,0


pln=LoadMesh("materials\ter.b3d")


tex=LoadTexture("materials\ppp.jpg")

EntityTexture pln,tex

Sky=LoadSkyBox ( "materials\sky\" )
ScaleEntity Sky, 10, 10, 10
EntityOrder sky,1

pivFR=CreatePivot()
PositionEntity pivFR,4.5,1.6,8

pivFL=CreatePivot()
PositionEntity pivFL,-4.5,1.6,8

pivRR=CreatePivot()
PositionEntity pivRR,4.5,1.6,-5.5

pivRL=CreatePivot()
PositionEntity pivRL,-4.5,1.6,-5.5

wheel_mesh = LoadMesh("materials\tara\disk2.3ds")
ScaleEntity wheel_mesh ,.005,.005,.005
RotateMesh wheel_mesh,0,90,0
wheel_meshd = LoadMesh("materials\tara\disk.3ds")
ScaleEntity wheel_meshd ,.005,.005,.005
RotateMesh wheel_meshd,0,90,0

wheel_mesh2 = LoadMesh("materials\tara\disk2.3ds")
ScaleEntity wheel_mesh2 ,.005,.005,.005
RotateMesh wheel_mesh2,0,-90,0
wheel_meshd2 = LoadMesh("materials\tara\disk.3ds")
ScaleEntity wheel_meshd2 ,.005,.005,.005
RotateMesh wheel_meshd2,0,-90,0

wFR=CopyEntity (wheel_mesh)
EntityParent wFR,pivFR
wFRd=CopyEntity (wheel_meshd)
EntityParent wFRd,wFR
PositionEntity wFR,x#,y#,z#

wFL=CopyEntity (wheel_mesh2)
EntityParent wFL,pivFL
wFLd=CopyEntity (wheel_meshd2)
EntityParent wFLd,wFL
PositionEntity wFL,x2#,y2#,z2#

wRR=CopyEntity (wheel_mesh)
EntityParent wRR,pivRR
wRRd=CopyEntity (wheel_meshd)
EntityParent wRRd,wRR
PositionEntity wRR,x3#,y3#,z3#

wRL=CopyEntity (wheel_mesh2)
EntityParent wRL,pivRL
wRLd=CopyEntity (wheel_meshd2)
EntityParent wRLd,wRL
PositionEntity wRL,x4#,y4#,z4#

FreeEntity wheel_mesh
FreeEntity wheel_meshd
FreeEntity wheel_mesh2
FreeEntity wheel_meshd2

Repeat

If KeyDown(205)Then
angle#=angle#-3
If angle#<-30 angle#=-30
Else
angle#=angle#*.9
EndIf

If KeyDown(203)Then
angle#=angle#+3
If angle#>30 angle#=30
Else
angle#=angle#*.9
EndIf

RotateEntity  wFR,0,angle#,0
RotateEntity wFL,0,angle#,0







If KeyDown(200)=True Then
speed=speed+.01
If speed>1 speed=1
Else If KeyDown(208)=True Then
speed=speed-.02
If speed<-.5 speed=-.5
Else
speed=speed*0.99
EndIf




MoveEntity pivFR,0,0,speed#
MoveEntity pivFL,0,0,speed#
MoveEntity pivRR,0,0,speed#
MoveEntity pivRL,0,0,speed#




RotateMesh  wFR,speed*25,0,0
RotateMesh  wFRd,speed*25,0,0
RotateMesh  wFL,speed*25,0,0
RotateMesh  wFLd,speed*25,0,0

x#=EntityX(pivFR)
y#=EntityY(pivFR)
z#=EntityZ(pivFR)

x2#=EntityX(pivFL)
y2#=EntityY(pivFL)
z2#=EntityZ(pivFL)

x3#=EntityX(pivRR)
y3#=EntityY(pivRR)
z3#=EntityZ(pivRR)

x4#=EntityX(pivRL)
y4#=EntityY(pivRL)
z4#=EntityZ(pivRL)

ter_y#=EntityY(pln)
ter_y2#=EntityY(pln)
ter_y3#=EntityY(pln)
ter_y4#=EntityY(pln)

PositionEntity pivFR,x#,ter_y#,z#
PositionEntity pivFL,x2#,ter_y2#,z2#
PositionEntity pivRR,x3#,ter_y3#,z3#
PositionEntity pivRL,x4#,ter_y4#,z4#



PointEntity cam,wFR
MoveEntity cam,0,0,(EntityDistance(wFR,cam)-50)*0.4
TranslateEntity cam,-1,(phBodyGetY(wFR) - EntityY(cam,1)+EntityY(wFR)+20)*.1,-.05,1




UpdateWorld
RenderWorld


PositionEntity Sky,EntityX( cam,1 ) ,EntityY( cam,1 ), EntityZ( cam,1 )

PostProcess_Render cam




Flip
Until KeyHit(1)



End





Function LoadSkyBox( file$ )

	m=CreateMesh()
	;front face
	b=LoadBrush( file$+"sky-111.jpg",49 )
	s=CreateSurface( m,b )
	AddVertex s,-1,+1,-1,0,0:AddVertex s,+1,+1,-1,1,0
	AddVertex s,+1,-1,-1,1,1:AddVertex s,-1,-1,-1,0,1
	AddTriangle s,0,1,2:AddTriangle s,0,2,3:
	FreeBrush b
	;right face
	b=LoadBrush( file$+"sky-222.jpg",49 )
	s=CreateSurface( m,b )
	AddVertex s,+1,+1,-1,0,0:AddVertex s,+1,+1,+1,1,0
	AddVertex s,+1,-1,+1,1,1:AddVertex s,+1,-1,-1,0,1
	AddTriangle s,0,1,2:AddTriangle s,0,2,3
	FreeBrush b
	;back face
	b=LoadBrush( file$+"sky-333.jpg",49 )
	s=CreateSurface( m,b )
	AddVertex s,+1,+1,+1,0,0:AddVertex s,-1,+1,+1,1,0
	AddVertex s,-1,-1,+1,1,1:AddVertex s,+1,-1,+1,0,1
	AddTriangle s,0,1,2:AddTriangle s,0,2,3
	FreeBrush b
	;left face
	b=LoadBrush( file$+"sky-444.jpg",49 )
	s=CreateSurface( m,b )
	AddVertex s,-1,+1,+1,0,0:AddVertex s,-1,+1,-1,1,0
	AddVertex s,-1,-1,-1,1,1:AddVertex s,-1,-1,+1,0,1
	AddTriangle s,0,1,2:AddTriangle s,0,2,3
	FreeBrush b
	;top face
	b=LoadBrush( file$+"sky-555.jpg",49 )
	s=CreateSurface( m,b )
	AddVertex s,-1,+1,+1,0,1:AddVertex s,+1,+1,+1,0,0
	AddVertex s,+1,+1,-1,1,0:AddVertex s,-1,+1,-1,1,1
	AddTriangle s,0,1,2:AddTriangle s,0,2,3
	FreeBrush b

	ScaleMesh m,100,100,100
	FlipMesh m
	EntityFX m,1
	Return m
	
End Function

сильно не смейтесь я только начал))
(Offline)
 
Ответить с цитированием