Grafikausgabe im Vordergrund
Übersicht

![]() |
MichiMeisterBetreff: Grafikausgabe im Vordergrund |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bisher habe ich ausschließlich in VB Net programmiert, was mir deutlich leichter fiel. Leider besteht da der Nachteil, daß man immer ein halbes Windows auf unbekannten Rechnern installieren muß und dadurch gezwungen wird umfangreiche Installationsroutinen mitzuliefern. Ein Start der Anwendung von CD ist ohne vorherige Installation nicht möglich.
Deshalb wollte ich einige Dinge in BBplus realisieren. Leider sind die Fenster- und Buttonbefehle sehr eingeschränkt und bieten nur wenig Gestaltungsmöglichkeiten. Deshalb möchte ich jetzt meine eigenen Fenster und Buttons erstellen. Das geht auch ganz gut. Leider gelingt es mir nicht, ein erstelltes Layout im Vordergrund zu verändern, um zum Beispiel bei einem Text die Farbe zu ändern. Die Grafikausgabe erfolgt immer im Hintergrund auch wenn ich den Befehl "SetBuffer FrontBuffer()" benutze. Kann es sein, daß BBplus hier einen Bug hat? Obwohl ich die Version 1.45 heruntergeladen und installiert habe, wird mir nur Version 1.44 angezeigt. Bin mittlerweile ziemlich genervt, weil ich in der Zeit, die ich daran nun schon sitze, das Projekt in VB längst fertig hätte. Aber aufgeben kommt nicht infrage. ![]() |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie machst du das genau?
Arbeitest du in einem Fenster mit einem Canvas? Dann musst du im ql:CanvasBuffer arbeiten. Arbeitest du im ql:Graphics Mode? Dann sollte es eig mit Frontbuffer klappen. EDIT: arbeitest du mit "Print"? Gewöhn dir besser "Text" an, weil nur bei dem kann man die Textfarbe mit ql:Color ändern. Und der Bug mit der Anzeige von v1.44 ist glaub ich schon bekannt. mfG, Christoph. PS: Ich liebe diese Quicklink-Funktion ![]() |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
MichiMeister |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich arbeite im Grafik-Modus und mit Text und es sollte funktionieren, tut es aber nicht.
Setbuffer bewirkt nichts. Ich kann es auch weglassen. Woher bekomme ich Version 1.45? Habe bereits 2x heruntergeladen von meinem Account und das File heißt auch 1.45 nur es ist nicht 1.45 drin. |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
So ne Fernanalyse wird jetzt zum reinsten ratespiel.
Kannst du mal den Code posten? Und das mit der Version: Du hast v1.45, es wird halt nicht so angezeigt. Das ist nur ein einziges falsches Byte (1.44 <-> 1.45) ![]() |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
MichiMeister |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Global xmaus,ymaus
Graphics 1024,768,0,0 ;SetBuffer FrontBuffer() ClsColor 192,192,192 Cls ; Frame(200,50,140,80,True,"Text") ShowPointer Flip() Repeat WaitEvent xmaus=MouseX() ymaus=MouseY() If MouseDown(1) Then If xmaus>200 And xmaus<340 And ymaus>50 And ymaus<130 Then Color 217,0,0 Text 271,91,"Text",True,True EndIf EndIf If KeyDown(1) Then Exit Forever End ; Function Frame(wx,wy,ww,wh,wsel,wt$) If wsel Then cl=255:cl2=110 Else cl=110:cl2=255 Color cl,cl,cl:Rect wx,wy,ww,wh,0:Color cl2,cl2,cl2:Rect wx,wy+wh-1,ww,1,0:Rect wx+ww-1,wy,1,wh:Color 192,192,192:Rect wx+1,wy+1,ww-2,wh-2 Color 255,255,255 fnt=LoadFont("Arial",26,True,False,False) SetFont fnt Text 270,90,wt$,True,True Color 0,0,0 Text 271,91,wt$,True,True FreeFont fnt End Function |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzPlus nutzt den ql:FrontBuffer nicht mehr!
Jegliche Ausgabe geschieht automatisch auf den Backbuffer. Ein "SetBuffer Backbuffer()" zum Nutzen von Double Buffering ist damit nicht mehr notwendig. Hier sieht man das ziemlich deutlich: Code: [AUSKLAPPEN] If FrontBuffer() = BackBuffer() Then Notify "HAHA! Verarscht! Ich bin gar kein richtiger Frontbuffer!"
Ist auch kein Bug, sondern von BRL so beabsichtigt. |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und wenn Du nun noch die Codetags benutzt und Deinen Code leserlich einrückst wird man Dir unter Umständen sogar helfen können. Ersteres habe ich ausnahmsweise in deinem Beitrag eingepflegt.
Wobei ich nicht nachvollziehen kann warum Du etwas auf den Frontbuffer pinseln willst, das führt nur zu zerissenen Ausgaben. Es ist nicht umsonst so dass bei B+ der Backbuffer als Standart eingerichtet wurde und Frontbufferbefehle wie input und Print auf die Konsole umgeleitet werden. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Shogo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich wuerde auch CLS und FLIP mit in deine Hauptschleife schreiben.
Edit: Deine Frame Function muss auch noch mit rein. Und wozu brauchst du Waitevent() in einem Grafikfenster? Funktioniert das da Ueberhaupt? @ Eingeproggt: Wie geht das mit dem Quicklink? |
||
![]() |
MichiMeister |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tut mir leid, wenn ich deinen Ansprüchen nicht genüge. Bei mir ist der Code eingerückt. Ging beim kopieren ins Forum verloren.
Ich habe keine Ahnung, wie man den Code hier am besten reinstellt, daß er so aussieht, wie er jetzt aussieht. Ein Hinweis dazu wäre ganz nett. Ich bin leider neu. Daß Frontbuffer nicht funktioniert, habe ich nun verstanden. Da jetzt aber immer in den Backbuffer geschrieben wird, muß ich selbst bei kleinen Änderungen mit Flip() die Änderung nach vorn holen. Das habe ich mit dem obigen Beispiel schon einmal ausprobiert. Allerdings verschwindet dann alles was vorne war in den Hintergrund und ist nicht mehr sichtbar. In dem Beispiel ändere ich nur den Text in der Farbe. Im Vollbildmodus mit Flip() bekomme ich dann auch nur den Text in rot auf schwarzem Hintergrund. Ich will aber den geänderten Text auf dem bereits vorhandenen Text haben. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
die Codetags siehst Du wenn du einen Post erstellst, über dem Textfeld sind mehrere Buttons.
Um zu deinem Problem zu kommen: Der gängige Weg ist es immer alles neu zu zeichnen und erst zum Ende der Mainloop einmal zu flippen. Da das 60 mal in der Sekunde passiert fällte es nicht auf. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
MichiMeister |
![]() Antworten mit Zitat ![]() |
---|---|---|
Besten Dank. Habe mich schon gewundert wie das geht mit dem Code einstellen. ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group