faire de l'eau
Publié : lun. 08/août/2005 19:08
salut voila jai fait un terrain ou il est prevue de metre des mar d'eau masi je ne trouev pas coment faire de l'eau qui soit de leau ... voila mon probleme merci de votre aide d'avance
Code : Tout sélectionner
CameraLocate(#Camera , PosXCamera , PosYCamera , PosZCamera)
Code : Tout sélectionner
#RobotMesh = 0
#RobotTexture = 0
#Robot = 0
#CameraSpeed = 5
IncludeFile "Screen3DRequester.pb"
DefType.f KeyX, KeyY, MouseX, MouseY
If InitEngine3D()
Add3DArchive("data/" , #PB_3DArchive_FileSystem)
Add3DArchive("data/Skybox.zip", #PB_3DArchive_Zip)
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
PosXCamera.f = EntityX(0) + Cos( Angle * 0.0174533) * 20
PosZCamera.f = EntityZ(0) - Sin( Angle * 0.0174533) * 20
PosYCamera.f = EntityY(0) + 15
Angle = angleentity + 180
CameraLookAt(0 , EntityX(0), EntityY(0), EntityZ(0))
AmbientColor(RGB(255,255,255))
CreateMaterial (0, LoadTexture(0, "Terrain_Texture.jpg"))
AddMaterialLayer(0, LoadTexture(1, "Terrain_Detail.jpg"), 1)
CreateTerrain ("Terrain.png", MaterialID(0), 20,2,20, 20)
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0, 128, 25, 128)
LoadMesh (#RobotMesh , "Robot.mesh")
CreateEntity(#Robot, MeshID(#RobotMesh), MaterialID(0))
EntityMaterial(#Robot, MaterialID(0))
AnimateEntity(#Robot, "Walk")
DisableMaterialLighting(0, 1)
MaterialAmbientColor(0, RGB(100, 100, 100))
MaterialSpecularColor(0, RGB(255, 255, 255))
CreateLight(0, RGB(0,0,255), 100.0, 0, 0)
LightSpecularColor(0, RGB(255, 0, 0))
SkyDome("Clouds.jpg",10)
ScaleEntity(#robot,1,1,1)
Repeat
Screen3DEvents()
Height.f = TerrainHeight (EntityX(0), EntityY(0))
MoveEntity (0, 0, -EntityY(0)+Height+7, 0)
PosXCamera.f = EntityX(0) + Cos( Angle * 0.0174533 ) * 50
PosZCamera.f = EntityZ(0) - Sin( Angle * 0.0174533 ) * 50
PosYCamera.f = EntityY(0) + height + 15
CameraLocate(0, PosXCamera , PosYCamera , PosZCamera)
Angle = Angle2 + 180
; CameraLookAt(0, EntityX(0), EntityY(0), EntityZ(0))
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
KeyX = 5
angle2= angle2-5
ElseIf KeyboardPushed(#PB_Key_Right)
KeyX = -5
angle2= angle2+5
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
KeyY = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Down)
KeyY = #CameraSpeed
Else
KeyY = 0
EndIf
RotateEntity(0,keyX,0,0)
MoveEntity (0, 0, - EntityY(0)+Height+7,0)
EndIf
If ExamineMouse()
If MouseButton(2)=1
MouseX = -(MouseDeltaX()/10)*#CameraSpeed/2
MouseY = -(MouseDeltaY()/10)*#CameraSpeed/2
RotateCamera(0,mouseX,MouseY,0)
EndIf
EndIf
RenderWorld()
Screen3DStats()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Else
MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
End
Code : Tout sélectionner
#RobotMesh = 0
#RobotTexture = 0
#Robot = 0
#CameraSpeed = 1
IncludeFile "Screen3DRequester.pb"
DefType.f KeyX, KeyY, MouseX, MouseY
If InitEngine3D()
Add3DArchive("data/" , #PB_3DArchive_FileSystem)
Add3DArchive("data/Skybox.zip", #PB_3DArchive_Zip)
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
Angle = angleentity + 180
AmbientColor(RGB(255,255,255))
CreateMaterial (0, LoadTexture(0, "Terrain_Texture.jpg"))
AddMaterialLayer(0, LoadTexture(1, "Terrain_Detail.jpg"), 1)
CreateTerrain("Terrain.png", MaterialID(0), 4, 0.6, 4, 4)
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0, 128, 25, 128)
LoadMesh (#RobotMesh , "Robot.mesh")
CreateMaterial(1, LoadTexture(1, "r2skin.jpg"))
CreateEntity(#Robot, MeshID(#RobotMesh), MaterialID(1))
AnimateEntity(#Robot, "Walk")
DisableMaterialLighting(0, 1)
MaterialAmbientColor(0, RGB(100, 100, 100))
MaterialSpecularColor(0, RGB(255, 255, 255))
CreateLight(0, RGB(0,0,255), 100.0, 0, 0)
LightSpecularColor(0, RGB(255, 0, 0))
SkyDome("Clouds.jpg",10)
ScaleEntity(#Robot,0.3,0.3,0.3)
DEcaleCam = 180
Repeat
Screen3DEvents()
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
KeyX = 3
Angle2= Angle2+3
ElseIf KeyboardPushed(#PB_Key_Right)
KeyX = -3
Angle2= Angle2-3
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
KeyY = #CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Down)
KeyY = -#CameraSpeed
Else
KeyY = 0
EndIf
If ExamineMouse()
If MouseButton(1)
MouseX = -(MouseDeltaX()/10)*#CameraSpeed/2
MouseY = -(MouseDeltaY()/10)*#CameraSpeed/2
EndIf
EndIf
;Tourne le robot
RotateEntity(0,KeyX,0,0)
;Déplace le robot
MoveEntity (0, Cos( Angle2 * 0.0174533 ) * KeyY, 0,- Sin( Angle2 * 0.0174533 ) * KeyY)
;Hauteur du robot sur le terrain
Height.f = TerrainHeight (EntityX(0), EntityZ(0))
;Replace le Robot à la bonne hauteur sur le terrain
EntityLocate(#Robot,EntityX(#Robot),Height,EntityZ(#Robot))
;Gestion de la caméra après le déplacement du robot
;Angle de la caméra > On place la caméra derrière le robot
DEcaleCam - MouseX
Angle = Angle2 + DEcaleCam
PosXCamera.f = EntityX(0) + Cos( Angle * 0.0174533 ) * 50
PosZCamera.f = EntityZ(0) - Sin( Angle * 0.0174533 ) * 50
PosYCamera.f = EntityY(0) + 15
;Contrôle la hauteur de la caméra ,pour qu'elle survole le terrain en suivant le robot
HauteurCamera.f = TerrainHeight (PosXCamera, PosZCamera)
If HauteurCamera + 15 > PosYCamera
PosYCamera = HauteurCamera + 15
EndIf
CameraLocate(0, PosXCamera , PosYCamera , PosZCamera)
DecaleLookY + MouseY
CameraLookAt(0, EntityX(0), EntityY(0) + DecaleLookY, EntityZ(0))
EndIf
RenderWorld()
Screen3DStats()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Else
MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
End