Seite 1 von 1

Gadget3d - Speicherfehler...

Verfasst: 09.06.2009 00:12
von KatSeiko
Ich habe ein kleines Problem mit den 3D-Gadgets hier. Das ist mein erster Versuch eines Programms mit 3D-Gadgets... Als Demonstration hier ein Codeschnipsel (bei dem hänge ich aktuell, mein Programm ist noch nicht länger):

Code: Alles auswählen

;{ Enumeration
Enumeration
;Allgemein
#MainWindow
;3D-Umgebung
#ButtonSettings
#ButtonPlay
EndEnumeration
;}
#Title = ""

;{ Initialisierungen
InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
;}

OpenWindow(#MainWindow, 0, 0, 1024, 768, #Title, #PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)
OpenWindowedScreen(WindowID(#MainWindow), 0, 0, 1024, 768, 0, 0, 0)
ButtonGadget3D(#ButtonSettings, 50, 50, 100, 30, "Settings")
ButtonGadget3D(#ButtonPlay, 50, 100, 100, 30, "Play")

Repeat
ExamineMouse()
ExamineKeyboard()
WEvent = WaitWindowEvent(10)
Until WEvent = #PB_Event_CloseWindow
Ich erhalte nun folgenden Fehler:
Assertation Failed!

Program: ...
File: y:\cegui\include\CEGUISingleton.h
Line: 79

Expression: ms_Singleton

For more information on how your program can cause an assertation failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application - JIT must be enabled)
Ich muss wahrscheinlich nicht erwähnen, dass ich kein Laufwerk Y eingebunden habe...
Was fehlt?

Verfasst: 09.06.2009 02:39
von Rebon
Das einzige was ich zu dieser Fehlermeldung gefunden habe:
http://www.purebasic.fr/german/viewtopi ... isingleton
Kann das Programm leider nicht testen, hab nur PB4.00.

Verfasst: 10.06.2009 16:38
von dysti
Bei mir tritt der Fehler auch auf.

Ursache:

Code: Alles auswählen

ButtonGadget3D

Verfasst: 11.06.2009 06:08
von tobe
hi KatSeiko,

in deinem code fehlen einige wichtige sachen ;)
man braucht ein paar extra dateien, aber dann funktioniert das bei mir:

Code: Alles auswählen

#MainWindow = 0
#ButtonExit = 0
#Title = ""
#Width = 800
#Height = 600
InitEngine3D()
; http://www.purebasic.com/Ogre1.6.zip (GUI -> Compilers kopieren)
Add3DArchive("GUI\schemes", #PB_3DArchive_FileSystem)
Add3DArchive("GUI\imagesets", #PB_3DArchive_FileSystem)
Add3DArchive("GUI\fonts", #PB_3DArchive_FileSystem)
Add3DArchive("GUI\looknfeel", #PB_3DArchive_FileSystem)
InitSprite()
InitSprite3D()
InitKeyboard()
InitMouse()
OpenWindow(#MainWindow, 0, 0, #Width, #Height, #Title, #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#MainWindow), 0, 0, #Width, #Height, 0, 0, 0)
OpenWindow3D(#MainWindow, 100, 100, 500, 300, "Title")
ButtonGadget3D(#ButtonExit, 200, 250, 100, 30, "Exit")
CreateCamera(0, 0, 0, 100, 100)
Repeat
  ExamineKeyboard()
  ExamineMouse()
  InputEvent3D(MouseX(), MouseY(), MouseButton(#PB_MouseButton_Left), KeyboardInkey())
  Select WindowEvent3D()
    Case #PB_Event3D_CloseWindow
      CloseWindow3D(#MainWindow)
    Case #PB_Event3D_Gadget
      Quit = 1
  EndSelect
  RenderWorld()
  FlipBuffers()
  If KeyboardReleased(#PB_Key_Escape)
    Quit = 1 
  EndIf
  Repeat
    Event = WindowEvent()
    If Event = #PB_Event_CloseWindow
      Quit = 1 
    EndIf
  Until Not Event
Until Quit
im Ogre1.6.zip von purebasic.com gib es auch ein beispiel (GUI.pb)

mfG
tobe

Verfasst: 11.06.2009 07:18
von dysti
Das diese Zip
http://www.purebasic.com/Ogre1.6.zip
erforderlich ist, steht nirgends in der Hilfe.
Die in der Hilfe angegebene Datei "Gadget3D.pb" ist nicht existent.