Open(Windowed)Screen Error?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
DrNo
Beiträge: 202
Registriert: 09.05.2008 15:20
Wohnort: BW, Deutschland
Kontaktdaten:

Open(Windowed)Screen Error?

Beitrag von DrNo »

Hallo,
Ich als anfänger wollte grad ein bisschen in die Screenbefehle "reinschnuppern" und wollte einfach mal ein kleinen Fenster mit einem Screen darin öffnen:

Code: Alles auswählen

If InitEngine3D() = 0 Or InitSprite() = 0
   MessageRequester("Fehler", "Fehler beim Laden.")
EndIf

If OpenWindow(0, #PB_Ignore, #PB_Ignore, 300, 200, "Fenster")
   If OpenWindowedScreen(WindowID(0), 0, 0, 300, 200, 1, 300, 200)
       ButtonGadget3D(0, 20, 20, 50, 50, "!?",0)
   EndIf
EndIf

Repeat
   Event = WaitWindowEvent()
   
Until Event = #PB_Event_CloseWindow

End   
Wenn ich aber nun meinen Code ausführe dann kommt eine Visual C++ Runtime Fehlermeldung und in PureBasic steht Invalid Memory Access.
Hab gedacht liegt vielleicht an ner defekten Visual C++ Runtime und hab dann die Visual C++ Runtime 2008 (neu) installiert. Als der Fehler dann aber immernoch da war hab ich mal die Beispielcodes aus der Sprite-Bibliothek ausprobiert. Aber auch da kommt dann die FEhlermeldung dass irgend ein Sprite nicht richtig geladen sei obwohl er eigentlich geladen ist. Früher in PB v4.20 hats aber glaub geklappt.
Liegt das nun an der neuen Version oder an was andrem?

Und noch eine Frage: Wozu brauch ich RightOffset und BottomOffset ?
Wird in der Holfe nämlich irgendwie nicht richtig erklärt. Hab einfach mal die Fenstergröße reingeschrieben.

DrNo
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

aaaalso...

die Implementierung der CEGUI, die die 3D-Gadgets macht, ist noch nicht 100%ig...
das könnte hier nen fehler verursachen...


> Wozu brauch ich RightOffset und BottomOffset ?
> Wird in der Holfe nämlich irgendwie nicht richtig erklärt.

wie in der Hilfe steht, für einen unteren bzw. rechten Rand, wo der screen nicht sein soll.

also z.b.

Code: Alles auswählen

OpenWindow(0, #PB_Ignore, #PB_Ignore, 300, 200, "Fenster")
   OpenWindowedScreen(WindowID(0), 20, 10, 300, 200, 1, 30, 20)
würde einen 300x200 screen erzeugen, der auf 250x170 gestaucht wird,
dass er nur einen bereich von (20, 10) bis (300-30, 200-20) einnimmt.

...wenn dein WindowedScreen das ganze fenster einnehmen soll,
setzt du einfach Autostretch und die beiden Offsets auf 0.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Re: Open(Windowed)Screen Error?

Beitrag von PMV »

Die Gadget3D basiert auf Window3D ... so kann das nicht funktionieren:
PB Hilfe: Gadget3D hat geschrieben:Vor dem Verwenden von Gadgets wird normalerweise zuerst ein Fenster geöffnet.
Und wenn du auf "Fenster" klickst, landest du bei OpenWindow3D() :wink:

Desweiteren solltest du meinen Post im folgenden Thread beachten:
http://www.purebasic.fr/german/viewtopic.php?t=18619

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Antworten