PureBasic 5.00 Beta 2 Exemples
Publié : ven. 31/août/2012 11:57
Forums PureBasic - Français
https://www.purebasic.fr/french/
Code : Tout sélectionner
;
; ------------------------------------------------------------
;
; PureBasic - Flipper
;
; (c) 2011 - Fantaisie Software
;
; ------------------------------------------------------------
;
IncludeFile "Screen3DRequester.pb"
#PB_Entity_MaxVelocity = 10
#CameraSpeed = 1
#Nb = 30
Define.f KeyX, KeyY, MouseX, MouseY, Angle = 145
Dim Planche(#Nb)
If InitEngine3D()
Add3DArchive("Data/Textures", #PB_3DArchive_FileSystem)
Add3DArchive("Data/Scripts",#PB_3DArchive_FileSystem)
Add3DArchive("Data/Packs/desert.zip", #PB_3DArchive_Zip)
Parse3DScripts()
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
WorldShadows(#PB_Shadow_Modulative)
;-Materials
CreateMaterial(0, LoadTexture(0, "Wood.jpg"))
GetScriptMaterial(1, "SphereMap/SphereMappedRustySteel")
GetScriptMaterial(2, "Color/Blue")
GetScriptMaterial(3, "Scene/GroundBlend")
;-Ground
CreatePlane(0, 100, 100, 10, 10, 15, 15)
CreateEntity(0,MeshID(0),MaterialID(3), 0, 0, 0)
EntityRenderMode(0, 0)
EntityPhysicBody(0, #PB_Entity_BoxBody, 0, 0, 1)
;-Mesh
CreateCube(1, 1.0)
CreateSphere(2, 2, 30, 30)
CreateCylinder(3, 2, 10)
;-Entity
Sphere = CreateEntity(#PB_Any, MeshID(2), MaterialID(1), 21, 2.1, 0)
EntityPhysicBody(Sphere, #PB_Entity_SphereBody, 0.5, 1, 1)
EntityLinearFactor(Sphere, 0.7, 0, 0.7)
; Cadre
BiaisD = CreateEntity(#PB_Any, MeshID(1), MaterialID(2), 20, 2, -40)
ScaleEntity(BiaisD, 10, 4, 1)
RotateEntity(BiaisD, 0, -45, 0)
EntityPhysicBody(BiaisD, #PB_Entity_BoxBody, 0, 1, 1)
Haut = CreateEntity(#PB_Any, MeshID(1), MaterialID(2), 0, 2, -45)
ScaleEntity(Haut, 50, 4, 1)
EntityPhysicBody(Haut, #PB_Entity_BoxBody, 0, 1, 1)
Bas = CreateEntity(#PB_Any, MeshID(1), MaterialID(2), 0, 2, 45)
ScaleEntity(Bas, 50, 4, 1)
EntityPhysicBody(Bas, #PB_Entity_BoxBody, 0, 1.5, 1)
Gauche = CreateEntity(#PB_Any, MeshID(1), MaterialID(2), -25, 2, 0)
ScaleEntity(Gauche, 1, 4, 90)
EntityPhysicBody(Gauche, #PB_Entity_BoxBody, 0, 1, 1)
Droit = CreateEntity(#PB_Any, MeshID(1), MaterialID(2), 25, 2, 0)
ScaleEntity(Droit, 1, 5, 90)
EntityPhysicBody(Droit, #PB_Entity_BoxBody, 0, 1, 1)
Couloir = CreateEntity(#PB_Any, MeshID(1), MaterialID(2), 17, 2, 10)
ScaleEntity(Couloir, 1, 4, 70)
EntityPhysicBody(Couloir, #PB_Entity_BoxBody, 0, 0.1, 1)
; Bumper
Cylinder = CreateEntity(#PB_Any, MeshID(3), MaterialID(0), 0, 0, -16)
EntityPhysicBody(Cylinder, #PB_Entity_CylinderBody, 0, 1.5, 1)
Cylinder = CreateEntity(#PB_Any, MeshID(3), MaterialID(0), 0, 0, 0)
EntityPhysicBody(Cylinder, #PB_Entity_CylinderBody, 0, 1.5, 1)
Cylinder = CreateEntity(#PB_Any, MeshID(3), MaterialID(0), -8, 0, -8)
EntityPhysicBody(Cylinder, #PB_Entity_CylinderBody, 0, 1.5, 1)
Cylinder = CreateEntity(#PB_Any, MeshID(3), MaterialID(0), 8, 0, -8)
EntityPhysicBody(Cylinder, #PB_Entity_CylinderBody, 0, 1.5, 1)
Cylinder = CreateEntity(#PB_Any, MeshID(3), MaterialID(0), 0, 0, 32)
EntityPhysicBody(Cylinder, #PB_Entity_CylinderBody, 0, 1.5, 1)
;-Camera
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0, 0, 35, 70)
CameraLookAt(0, 0, 0, 10)
;-Skybox
SkyBox("desert07.jpg")
;-Light
CreateLight(0, RGB(255, 255, 255), 100, 800, -500)
AmbientColor(RGB(20, 20, 20))
Repeat
Screen3DEvents()
If ExamineMouse()
MouseX = -MouseDeltaX() * #CameraSpeed * 0.05
MouseY = -MouseDeltaY() * #CameraSpeed * 0.05
EndIf
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Space)
ApplyEntityImpulse(Sphere, 0, 0, -30)
EndIf
If KeyboardPushed(#PB_Key_LeftShift)
ApplyEntityImpulse(Sphere, 3, 0, 0)
EndIf
If KeyboardPushed(#PB_Key_RightShift)
ApplyEntityImpulse(Sphere, -3, 0, 0)
EndIf
If KeyboardPushed(#PB_Key_Left)
KeyX = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Right)
KeyX = #CameraSpeed
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
KeyY = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Down)
KeyY = #CameraSpeed
Else
KeyY = 0
EndIf
EndIf
ApplyEntityImpulse(Sphere, 0, 0, 0.3)
SetEntityAttribute(Sphere, #PB_Entity_MaxVelocity, 80)
MoveCamera (0, KeyX, 0, KeyY)
RotateCamera(0, MouseY, MouseX, 0, #PB_Relative)
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
13:00:20: Creating resource group General
13:00:20: Creating resource group Internal
13:00:20: Creating resource group Autodetect
13:00:20: SceneManagerFactory for type 'DefaultSceneManager' registered.
13:00:20: Registering ResourceManager for type Material
13:00:20: Registering ResourceManager for type Mesh
13:00:20: Registering ResourceManager for type Skeleton
13:00:20: MovableObjectFactory for type 'ParticleSystem' registered.
13:00:20: OverlayElementFactory for type Panel registered.
13:00:20: OverlayElementFactory for type BorderPanel registered.
13:00:20: OverlayElementFactory for type TextArea registered.
13:00:20: Registering ResourceManager for type Font
13:00:20: ArchiveFactory for archive type FileSystem registered.
13:00:20: ArchiveFactory for archive type Zip registered.
13:00:20: ArchiveFactory for archive type EmbeddedZip registered.
13:00:20: DDS codec registering
13:00:20: FreeImage version: 3.10.0
13:00:20: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
13:00:20: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,koa,iff,lbm,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,dds,gif,g3,sgi,j2k,j2c,jp2
13:00:20: PVRTC codec registering
13:00:20: Registering ResourceManager for type HighLevelGpuProgram
13:00:20: Registering ResourceManager for type Compositor
13:00:20: MovableObjectFactory for type 'Entity' registered.
13:00:20: MovableObjectFactory for type 'Light' registered.
13:00:20: MovableObjectFactory for type 'BillboardSet' registered.
13:00:20: MovableObjectFactory for type 'ManualObject' registered.
13:00:20: MovableObjectFactory for type 'BillboardChain' registered.
13:00:20: MovableObjectFactory for type 'RibbonTrail' registered.
13:00:20: *-*-* OGRE Initialising
13:00:20: *-*-* Version 1.8.0 (Byatis)
13:00:20: D3D9 : Direct3D9 Rendering Subsystem created.
13:00:20: D3D9: Driver Detection Starts
13:00:20: D3D9: Driver Detection Ends
13:00:20: OpenGL Rendering Subsystem created.
13:00:20: Particle Emitter Type 'Point' registered
13:00:20: Particle Emitter Type 'Box' registered
13:00:20: Particle Emitter Type 'Ellipsoid' registered
13:00:20: Particle Emitter Type 'Cylinder' registered
13:00:20: Particle Emitter Type 'Ring' registered
13:00:20: Particle Emitter Type 'HollowEllipsoid' registered
13:00:20: Particle Affector Type 'LinearForce' registered
13:00:20: Particle Affector Type 'ColourFader' registered
13:00:20: Particle Affector Type 'ColourFader2' registered
13:00:20: Particle Affector Type 'ColourImage' registered
13:00:20: Particle Affector Type 'ColourInterpolator' registered
13:00:20: Particle Affector Type 'Scaler' registered
13:00:20: Particle Affector Type 'Rotator' registered
13:00:20: Particle Affector Type 'DirectionRandomiser' registered
13:00:20: Particle Affector Type 'DeflectorPlane' registered
13:00:20: PCZone Factory Type 'ZoneType_Default' registered
13:00:20: CPU Identifier & Features
13:00:20: -------------------------
13:00:20: * CPU ID: GenuineIntel: Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz
13:00:20: * SSE: yes
13:00:20: * SSE2: yes
13:00:20: * SSE3: yes
13:00:20: * MMX: yes
13:00:20: * MMXEXT: yes
13:00:20: * 3DNOW: no
13:00:20: * 3DNOWEXT: no
13:00:20: * CMOV: yes
13:00:20: * TSC: yes
13:00:20: * FPU: yes
13:00:20: * PRO: yes
13:00:20: * HT: no
13:00:20: -------------------------
13:00:20: *** Starting Win32GL Subsystem ***
13:00:20: Registering ResourceManager for type Texture
13:00:20: SceneManagerFactory for type 'OctreeSceneManager' registered.
13:00:20: SceneManagerFactory for type 'BspSceneManager' registered.
13:00:20: Registering ResourceManager for type BspLevel
13:00:20: Added resource location './Data/Textures' of type 'FileSystem' to resource group 'General'
13:00:20: Added resource location './Data/Scripts' of type 'FileSystem' to resource group 'General'
13:00:20: Added resource location './Data/Packs/desert.zip' of type 'Zip' to resource group 'General'
13:00:20: Parsing scripts for resource group Autodetect
13:00:20: Finished parsing scripts for resource group Autodetect
13:00:20: Creating resources for group Autodetect
13:00:20: All done
13:00:20: Parsing scripts for resource group General
13:00:20: Parsing script Color.material
13:00:20: Parsing script CubeMap.material
13:00:20: Parsing script Earth.material
13:00:20: Parsing script Examples.material
13:00:20: Parsing script facial.material
13:00:20: Parsing script particle.material
13:00:20: Parsing script ReloadMaterial.material
13:00:20: Parsing script ResetMaterial.material
13:00:20: Parsing script Rusty.material
C'est la fautive, vire ce script et ça devrait fonctionner.13:00:20: Parsing script Rusty.material
C'est "normal" , Ogre à les code hlsl en dur au seins de son code.Voici les scènes qui posent problèmes (en opengl) :
- les scènes avec un terrain : le terrain bug (on voit une sorte plan vertical blanc à la place)
- les scènes avec createwater : ça se lance, mais le rendu est différent (pb lié au shader), c'est pas très grave, mais je le signale juste au cas où