Problème gadget 3D

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
stombretrooper
Messages : 117
Inscription : dim. 21/déc./2008 18:39

Problème gadget 3D

Message par stombretrooper »

J'ai commencé à créer un jeu vidéo 3D. Et j'ai rencontré un bug. Le message d'erreur suivant s'affiche avant que mon application se ferme :
Image

Mon code source actuel est le suivant :

Code : Tout sélectionner

version.s="Alpha 1"
ScreenWidth=800
ScreenHeight=600

If InitKeyboard()=0
  OpenConsole()
  PrintN("Erreur 1K : Impossible d'initialiser le clavier.")
  Input()
  End
EndIf

If InitMouse()=0
  OpenConsole()
  PrintN("Erreur 1M : Impossible d'initialiser la souris.")
  Input()
  End
EndIf

If InitSound()=0
  OpenConsole()
  PrintN("Erreur 1S : Impossible d'initialiser les musiques et sons.")
  Input()
  End
EndIf

If InitEngine3D()=0
  OpenConsole()
  PrintN("Erreur 1E : Impossible d'initialiser le système 3D.")
  Input()
  End
EndIf

If InitSprite()=0
  OpenConsole()
  PrintN("Erreur 1G : Impossible d'initialiser le système graphique.")
  Input()
  End
EndIf
If OpenWindow(0, 0, 0, ScreenWidth, ScreenHeight+MenuHeight(), "Les mondes de kraessor - "+version, #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  resultat = OpenWindowedScreen(WindowID(0), 0, 0, ScreenWidth, ScreenHeight, 0, 0, 0)
  Quit=0
  Add3DArchive("data.zip",#PB_3DArchive_Zip)
  LoadTexture(0, "titre_kraessor.png")
  ImageGadget3D(0,10,10,900,300,TextureID(0))
  Repeat
    Repeat
      Event = WindowEvent()
      Select Event
        Case #PB_Event_CloseWindow
          End
      EndSelect
    Until Event=0
  Until Quit=1
EndIf

End
http://www.purebasicstreet.com/ - Site dédié à purebasic.
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Problème gadget 3D

Message par G-Rom »

Salut , que contient data.zip ?
stombretrooper
Messages : 117
Inscription : dim. 21/déc./2008 18:39

Re: Problème gadget 3D

Message par stombretrooper »

le zip contient l'image titre_kraessor.png
http://www.purebasicstreet.com/ - Site dédié à purebasic.
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Problème gadget 3D

Message par G-Rom »

il te manque donc le chemin qui conduit au éléments de la gui , regarde les exemples , en plus ton code n'y fait pas référence.
Dès lors que tu as un problème avec la 3D lit le fichier ogre.log ( en cas de plantage , les dernières ligne te disent pour quoi en général )

@+
stombretrooper
Messages : 117
Inscription : dim. 21/déc./2008 18:39

Re: Problème gadget 3D

Message par stombretrooper »

Merci G-Rom, j'avais effectivement oublié de préciser un lien vers la GUI. Mais je suis déçu du résultat. Il est possible de dessiner une image, un texte, ou quelque soit d'autre sans devoir au préalable ouvrir une fenêtre ? Peut être ne pas passer par les Gadget 3D ?

Je suis bien curieux, pour réaliser un HUD notamment, voir un écran titre. De savoir comme procéder.
http://www.purebasicstreet.com/ - Site dédié à purebasic.
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Problème gadget 3D

Message par G-Rom »

Oui tu peut dessiner ce que tu veut sans ouvrir de fenêtres. peut être qu'en passant par les sprites3D tu pourras te faire un HUD.
si tu as un soucis avec les sprite3D et Ogre post le problème ici , je t'aiderais.

@+
stombretrooper
Messages : 117
Inscription : dim. 21/déc./2008 18:39

Re: Problème gadget 3D

Message par stombretrooper »

Alors j'ai fait quelques tests, dans la doc à propos de la fonction RenderWorld() c'est marqué :
Affiche le rendu de la scène 3D sur l'écran courant. Cette commande doit être appelée quand toutes les opérations relatives à la 3D sont terminées. Il est parfaitement possible d'utiliser les fonctions 2D habituelles telles que DisplaySprite() après cette commande, pour afficher des informations en surimpression (note: les Sprites3D ne sont pas supportés pour l'instant).
Donc, apparemment les sprites3D ne marche pas (encore), j'ai donc tenté de faire afficher des sprites normaux après le renderworld, et je n'y arrive pas. Quand je mes ;

Code : Tout sélectionner

RenderWorld()
FlipBuffers()
startdrawing(WindowOutput(0))
displaysprite(0,100,100)
stopdrawing()
Je n'ai rien qui s'affiche.

Par contre quand j'enlève le 'RenderWorld' mon sprite s'affiche...
http://www.purebasicstreet.com/ - Site dédié à purebasic.
Fred
Site Admin
Messages : 2809
Inscription : mer. 21/janv./2004 11:03

Re: Problème gadget 3D

Message par Fred »

C'est entre le renderworld() et le flipbuffer() qu'il faut mettre tes opérations sur les sprites. Sinon tu commences un nouveau rendu..
stombretrooper
Messages : 117
Inscription : dim. 21/déc./2008 18:39

Re: Problème gadget 3D

Message par stombretrooper »

Ok Fred,
J'ai mis ce code là :

Code : Tout sélectionner

RenderWorld()
startdrawing(WindowOutput(0))
displaysprite(0,100,100)
stopdrawing()
FlipBuffers()
Et sa ne marche pas, sauf quand j'enlève le RenderWorld... Donc je vois pas le truc.
http://www.purebasicstreet.com/ - Site dédié à purebasic.
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Problème gadget 3D

Message par G-Rom »

Ton startdrawing ne sert à rien , tout comme le stopdrawing , les sprites non pas besoin de ca.

@+
Répondre