Hintergrundfarbe ändern

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Pebender

Betreff: Hintergrundfarbe ändern

BeitragSo, Jul 31, 2011 9:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

wie ändert man am sinnvollsten die Hintergrundfarbe eines Canvas.
Ich habe es im moment mit SetClsColor() gemacht, was ja auch funktioniert.Problem ist nur, wenn ich was ins Canvas zeichne wird das Canvas ja auch wieder gelöscht und auf die Farbe von SetClsColor() gesetzt.
Komischerweise funktioniert SetGadgetColor() nicht, warum auch immer.
Wenn ich in das Canvas ein Rechteck mit DrawRect() zeichne, kann ich dort anschließend andere Grafiken so draufzeichnen, das wenn ich die Farbe des Rechtecks ändere, sich an den anderen Grafiken nichts ändert?
Oder soll ich einen komplett anderen Weg gehen??


BMax & MaxGUI im Einsatz

mfg Peter
BMax & MaxGUI

Midimaster

BeitragSo, Jul 31, 2011 9:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Canvas entspricht genau dem Fenster, das Du sonst für die Blitz-Grafik-Befehle zur Verfügung hast. Windows hält sich komplett aus diesem Bereich heraus und "restauriert" auch nichts, wenn andere Fenster etwas davon überdeckt hatten. Daher lässt sich auch keine Hintergrundfarbe defineren. Wer auch sollte sich dafür interessieren?

Für den Aufbau des Fensters bist allein Du verantwortlich. Also..


Code: [AUSKLAPPEN]
SetClsColor
Cls
DrawRect x,y....
...
Flip


willst Du die Hintergrundfarbe ändern, bleibt Dir nichts übrig als auch den gesamten Vordergrund neu zu zeichnen.


So wie sich das anhört, könnten zwei Canvas eine Lösung für deine Probleme sein...

Pebender

BeitragSo, Jul 31, 2011 10:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Midimaster,

hatte nur gedacht es gibt eine simplere Lösung.
In meinem Programm soll die Hintergrundfarbe den Zement darstellen.
Und anschließend sollen Steinchen prozentual & per Zufall dargestellt werden.
Meine Überlegung war halt, wenn du einen grünen Hintergrund hast, und änderst den auf blau, sollen die Steinchen nicht wieder neu geordnet werden, sondern nur der Hintergrund soll sich ändern.
Die Farbe wird über RequestColor() ausgesucht.


mfg Peter
BMax & MaxGUI

Midimaster

BeitragSo, Jul 31, 2011 10:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Nun, hier könntest Du ja aus den Steinchen einen zweites Layer gebastelt haben, der als eigenes Image jederzeit über das Hintergrundbild darübergezeichnet werden kann.

Oder zweite Lösung: Merke Dir den Zufallswert RndSeed bevor Du mit dem Zeichnen der Steinchen anfängst. Dadurch ist sichergestellt, das beim zweiten Malen alle Zufalls-Steinchen wieder an exakt die gleiche Position wie bei ersten Mal kommen. Für den Betrachter sieht das so aus, als ob nur der Hintergrund sich ändert.

Wie lange brauchst Du denn aktuell, um die Steichen für eine Canvas zu malen? (von Cls bis Flip)

Pebender

BeitragSo, Jul 31, 2011 11:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke dir für deine schnelle Antworten, aber....

Zitat:
Wie lange brauchst Du denn aktuell, um die Steichen für eine Canvas zu malen? (von Cls bis Flip)


soweit bin leider noch nicht.

Bin auch noch mit der Überlegung beschäftigt, wie genau ich da anstellen soll.
Meine bisherigen Überlegungen sin wie folgt:
Da es nachher etliche verschiedene Arten von Steinchen geben soll.
Von jeder Art 100 Steinchen, die per Zufall platziert werden sollen.
Steinchen werden im .PNG-Format gespeichert, da ich die Transparenz nutzen will.
Steinchen laden über Combobox aus Verzeichnis heraus.
Anzahl der Steinchen prozentual über Textboxeingabe bestimmen.
Steinchen anordnenlassen und auf Kollision prüfen.

so ungefähr stell ich mir das vor


Arbeite mich auch noch durch verschiedene Tutorials, damit ich euch nicht noch öfters belämmern muß.


mfg Peter
BMax & MaxGUI

Midimaster

BeitragSo, Jul 31, 2011 12:06
Antworten mit Zitat
Benutzer-Profile anzeigen
ich würde, wäre ich an deiner Stelle, zunächst Lösungswege für das Stein-Problem suchen.

Dazu würde ich auf die MaxGui verzichten und lieber das was später in die Canvas mit einem 3D-Lösungsweg in B3D lösen. Später kann man das ganze ja uaf MiniB3D konvertieren und eine GUI drumherumschreiben.

Der Grund für diese Vorgehensweise ist die Befürchtung, dass man das Steine-Einfüllen nur mit großes Timing-Problemen hinbekommen wird. Und man macht sich nicht die Mühe eine GUI zu schreiben und DANACH am Kernproblem zu scheitern.

So wie ich das verstanden habe programmierst Du an einer Terazzo-Simulation.

Pebender

BeitragSo, Jul 31, 2011 12:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja es soll eine Terrazzo - Simulation werden, wenn es fertig ist.

mfg Peter
BMax & MaxGUI

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group