Canvas... Problem <- GELÖST
Übersicht

![]() |
Mathias-KwiatkowskiBetreff: Canvas... Problem <- GELÖST |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi leute ich habe nun einen folgenden quelltext raus genommen. und ihn ein klein wenig abgewandt.
aber erst mal zum problem was ich habe. wenn man ein fenster erstellt + ein darin liegendes canvas etwas grafisch ausmalt ect... dann das fenster schließt und im gleichen athemzug wieder neu eröffnet gibt es keinerlei probleme. ABER ist in der draw routine ein DrawText so gibt es direckt ein DX fehler... (der code ohne draw text rennt, egal wie oft ihr das fenster schliesst... probiert es mal aus) Code: [AUSKLAPPEN] ' createcanvas.bmx
Import MaxGui.Drivers Strict Global GAME_WIDTH=320 Global GAME_HEIGHT=240 ' create a centered window with client size GAME_WIDTH,GAME_HEIGHT Local wx=(ClientWidth(Desktop())-GAME_WIDTH)/2 Local wy=(ClientHeight(Desktop())-GAME_HEIGHT)/2 Local window:TGadget=CreateWindow("My Canvas",wx,wy,GAME_WIDTH,GAME_HEIGHT,Null,WINDOW_TITLEBAR|WINDOW_CLIENTCOORDS) ' create a canvas for our game Local canvas:TGadget=CreateCanvas(0,0,320,240,window) ' create an update timer CreateTimer 60 While WaitEvent() Select EventID() Case EVENT_TIMERTICK RedrawGadget canvas Case EVENT_GADGETPAINT SetGraphics CanvasGraphics(canvas) SetOrigin 160,120 SetLineWidth 5 Cls Local t=MilliSecs() DrawLine 0,0,120*Cos(t),120*Sin(t) DrawLine 0,0,80*Cos(t/60),80*Sin(t/60) 'DrawText "LOL",100,100 Flip Case EVENT_MOUSEMOVE Print "MOVE!" Case EVENT_WINDOWCLOSE FreeGadget canvas FreeGadget window window:TGadget=CreateWindow("My Canvas",wx,wy,GAME_WIDTH,GAME_HEIGHT,Null,WINDOW_TITLEBAR|WINDOW_CLIENTCOORDS) canvas:TGadget=CreateCanvas(0,0,320,240,window) End Select Wend Wenn ihr diesen Quelltext nun ausprobiert habt ohne ihn zu verändern. werdet ihr feststellen das alles in ordnung ist. nun geht in zeile 27 und nehmt den komentar raus ( also so das der befehl Drawtext auch genutzt wird) anstelle ' Drawtext einfach ohne das ' ... startet den code und versucht es nochmal... ihr werdet sehen ihr könnt das fenster nichmal einmal schliessen ohne das ein direct x fehler auftaucht. warum ist das so und wie kann ich das ändern, das es funktioniert? so was auch immer das ist.... ichhabe es wie folgt gelöst Code: [AUSKLAPPEN] ' createcanvas.bmx
Import MaxGui.Drivers Strict Global GAME_WIDTH=320 Global GAME_HEIGHT=240 ' create a centered window with client size GAME_WIDTH,GAME_HEIGHT Local wx=(ClientWidth(Desktop())-GAME_WIDTH)/2 Local wy=(ClientHeight(Desktop())-GAME_HEIGHT)/2 Local window:TGadget=CreateWindow("My Canvas",wx,wy,GAME_WIDTH,GAME_HEIGHT,Null,WINDOW_TITLEBAR|WINDOW_CLIENTCOORDS) ' create a canvas for our game Local canvas:TGadget=CreateCanvas(0,0,320,240,window) ' create an update timer SetGraphicsDriver( GLGraphicsDriver()) CreateTimer 60 While WaitEvent() Select EventID() Case EVENT_TIMERTICK RedrawGadget canvas Case EVENT_GADGETPAINT SetGraphics CanvasGraphics(canvas) SetOrigin 160,120 SetLineWidth 5 Cls Local t=MilliSecs() DrawLine 0,0,120*Cos(t),120*Sin(t) DrawLine 0,0,80*Cos(t/60),80*Sin(t/60) DrawText "LOL",100,100 Flip Case EVENT_MOUSEMOVE Print "MOVE!" Case EVENT_WINDOWCLOSE EndGraphics() FreeGadget canvas FreeGadget window window:TGadget=CreateWindow("My Canvas",wx,wy,GAME_WIDTH,GAME_HEIGHT,Null,WINDOW_TITLEBAR|WINDOW_CLIENTCOORDS) canvas:TGadget=CreateCanvas(0,0,320,240,window) SetGraphicsDriver( GLGraphicsDriver()) End Select Wend (nach jedem erstellen des canvas SetGraphicsDriver( GLGraphicsDriver()) und es funktioniert... |
||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group