ecran3d

Programmation d'applications complexes
mgou

ecran3d

Message par mgou »

Si j'ouvre avec "OpenWindowedScreen" dans une fenetre windows,
lorsque j'agrandi la fenetre principale le programme plante.
voici mon code

; fenetre3d=======================================
#CameraSpeed = 10
p1=30
DefType.f KeyX, KeyY, MouseX, MouseY
If InitEngine3D()
InitMouse()
InitKeyboard()
InitSprite()
win1 = OpenWindow(0,0,0,640,480,#PB_Window_SystemMenu|#PB_Window_ScreenCentered| #PB_Window_MaximizeGadget| #PB_Window_MinimizeGadget | #PB_Window_SizeGadget ,"3D Mesh by MGsoft")
hBrush1 = CreateSolidBrush_(RGB(0, 0, 255))
SetClassLong_(win1, #GCL_HBRBACKGROUND, hBrush1)

OpenWindowedScreen(WindowID(),150,100,320,200,1,10,10)

Add3DArchive("Data\", #PB_3DArchive_FileSystem)
Add3DArchive("Skybox.zip", #PB_3DArchive_Zip)


;chargement du ciel===================================
SkyBox("Sky10.jpg")
; ;chargement des meshes==========================
; LoadMesh (7 , "4x4.mesh")
; LoadTexture(7, "4x4.jpg")
; CreateMaterial(7, TextureID(7))
; CreateEntity(7, MeshID(7), MaterialID(7))
; EntityMaterial(7, MaterialID(7))
;AnimateEntity(p1, "idle")
;ResizeEntity(7, 1, 1, 1)
;EntityLocate(7, 0, 0, -500)
AmbientColor(RGB(255,255,255))
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0,0,0,10)

Repeat
ClearScreen(0, 0, 0)
If ExamineKeyboard()
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
ExamineKeyboard()
Select WindowEvent()
Case #PB_Event_CloseWindow
Quit = #TRUE
EndSelect

RenderWorld()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit
Else
MessageRequester("Error", "Cant init DirectX 3D Engine",0)
EndIf

End

;merci de votre aide===============
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

tu utilises quelle version de la DLL engine3D ? la dernière livrée avec purebasic 3.81 ou la version bêta que danilo a proposé en essai ?
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Avec celle de Danillo je sais pas mais ça plante aussi sur 98SE et PB 3.81. Si on enlève auto-strech pas de problèmes. Voilà :wink:
mgou

ecran 3d

Message par mgou »

quelque soit la dll que j'utilise plantage !!!
Invité

Message par Invité »

Effectivement ,ça plante aussi chez moi sous XP
et si je mets la ligne initEngine3d en commentaire , ça ne plante plus !!

Code : Tout sélectionner

If InitEngine3D() 
   InitSprite() 
   win1 = OpenWindow(0,0,0,640,480,#PB_Window_SystemMenu|#PB_Window_ScreenCentered| #PB_Window_MaximizeGadget| #PB_Window_MinimizeGadget | #PB_Window_SizeGadget ,"3D Mesh by MGsoft") 
   hBrush1 = CreateSolidBrush_(RGB(0, 0, 255)) 
   SetClassLong_(win1, #GCL_HBRBACKGROUND, hBrush1) 
   OpenWindowedScreen(WindowID(),150,100,320,200,1,10,10) 
   Repeat 
      ClearScreen(0, 0, 0) 
      Select WindowEvent() 
         Case #PB_Event_CloseWindow 
            Quit = #True 
      EndSelect 
      RenderWorld() 
      FlipBuffers() 
   Until Quit 
Else 
   MessageRequester("Error", "Cant init DirectX 3D Engine",0) 
EndIf 

End 
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

c'était moi , j'ai encore oublié de me connecter , et j'ai beau valider la connexion automatique ... enfin bref .

Tu devrais essayer de poser la question sur le forum anglais , peut-être que quelqu'un saura te répondre ? mais bon , j'ai l'impression qu'avec la DLL engine3D on ne peut pas faire ce que l'on veut pour l'instant .
Répondre