Page 1 sur 1

Problème gadget 3D

Publié : mar. 08/juin/2010 16:06
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

Re: Problème gadget 3D

Publié : mer. 09/juin/2010 12:36
par G-Rom
Salut , que contient data.zip ?

Re: Problème gadget 3D

Publié : mer. 09/juin/2010 12:40
par stombretrooper
le zip contient l'image titre_kraessor.png

Re: Problème gadget 3D

Publié : mer. 09/juin/2010 15:08
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 )

@+

Re: Problème gadget 3D

Publié : ven. 11/juin/2010 22:32
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.

Re: Problème gadget 3D

Publié : sam. 12/juin/2010 9:44
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.

@+

Re: Problème gadget 3D

Publié : mar. 15/juin/2010 16:37
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...

Re: Problème gadget 3D

Publié : mar. 15/juin/2010 18:13
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..

Re: Problème gadget 3D

Publié : mar. 15/juin/2010 22:36
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.

Re: Problème gadget 3D

Publié : mar. 15/juin/2010 22:58
par G-Rom
Ton startdrawing ne sert à rien , tout comme le stopdrawing , les sprites non pas besoin de ca.

@+