 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Luke

Anmeldungsdatum: 14.01.2009 Beiträge: 92 Wohnort: Ostfriesland !
|
Verfasst am: 23.09.2009, 22:24 Titel: zeichnen ohne Fenster |
|
|
Moin Leute! Hab es schon in vielen anderen Programmen gesehen, aber den Code nicht verstanden . Ich wollt gern mal wissen, wie man auf dem Desktop zeichnen, bzw. den Desktop Ausschnitt hinterm Grafikfenster in dieses hinein kopieren kann. Es soll zum Beispiel in einfaches Quadrat oder ein Kreis auf dem Bildschirm erscheinen, ohne dass man ein schwarzes fenster sieht. Danke für antworten! _________________ ICH war mal schizophren, aber jetzt sind WIR okay. |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 23.09.2009, 22:28 Titel: |
|
|
Mach doch einfach ein Fenster ohne Rahmen, dass du dann transparent machst. Für das Fenster mal das Stichwort: GFX_SHAPED_WINDOW |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 23.09.2009, 22:42 Titel: |
|
|
gibt auch nen GFX-modus ohne fenster... da muss man nicht so rumtricksen
einfach mal in die referenz bei den screen-flags gucken. _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 23.09.2009, 22:49 Titel: |
|
|
Hat MOD ja schon gesagt.  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Luke

Anmeldungsdatum: 14.01.2009 Beiträge: 92 Wohnort: Ostfriesland !
|
Verfasst am: 23.09.2009, 23:10 Titel: |
|
|
Ey Super! Danke für die antworten! Noch Ne Frage: Was muss ich includen? _________________ ICH war mal schizophren, aber jetzt sind WIR okay. |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 23.09.2009, 23:16 Titel: |
|
|
Die fbgfx.bi und
einfügen. |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 23.09.2009, 23:18 Titel: |
|
|
Ich meinte GFX_NULL:
/Edit: da muss man auch nix includen. _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
Luke

Anmeldungsdatum: 14.01.2009 Beiträge: 92 Wohnort: Ostfriesland !
|
Verfasst am: 23.09.2009, 23:24 Titel: |
|
|
@ The Muh: Hab ich auch gade heraus gefunden, und funzt auch.
wollte nur erst das andere probieren.
@MOD funzt auch! Danke
Äh....
wieso wird jetzt nichts angezeigt beim zeichnen? _________________ ICH war mal schizophren, aber jetzt sind WIR okay. |
|
Nach oben |
|
 |
Luke

Anmeldungsdatum: 14.01.2009 Beiträge: 92 Wohnort: Ostfriesland !
|
Verfasst am: 23.09.2009, 23:41 Titel: |
|
|
irgentwie klappts jetzt gar nicht mehr.
mit dem flag -1 kan ich nicht zeichnen, und nach MOD's Methode wird trotzdem ein schwarzes fenster gezeichnet:
Code: | #include "fbgfx.bi"
using fb
screen 16,32,,8,gfx_shaped_window
line (1,1)-(100,100),rgb(255,0,0),bf
sleep
|
und
Code: | #include "fbgfx.bi"
using fb
screen 16,32,,-1
line (1,1)-(100,100),rgb(255,0,0),bf
sleep
|
nichts klappt?! Tut mir Leid ich schreibe, bevor ich denke und handle. Werts mir abgewöhnen. _________________ ICH war mal schizophren, aber jetzt sind WIR okay. |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 23.09.2009, 23:54 Titel: |
|
|
Du hast da ein paar Kommas zu viel bei Screen.
Versuch es mal so:
Code: | SCREEN 16,32,,16
Line(0,0)-(511,383),&hffff00ff,bf
LINE (1,1)-(100,100),RGB(255,0,0),bf
SLEEP
|
|
|
Nach oben |
|
 |
Luke

Anmeldungsdatum: 14.01.2009 Beiträge: 92 Wohnort: Ostfriesland !
|
Verfasst am: 24.09.2009, 00:05 Titel: |
|
|
das klappt
Nur was hat Code: | Line(0,0)-(511,383),&hffff00ff,bf | direkt zu bedeuten?
mit (0,0)-(511,383) wird das ganze Fenster mit der Farbe &hffff00ff "bemalt"
was ist "&hffff00ff" ? _________________ ICH war mal schizophren, aber jetzt sind WIR okay. |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 24.09.2009, 00:29 Titel: |
|
|
Das hab ich nur schnell aus einem alten Code rauskopiert, RGB(255,0,255) würde auch gehen.
Die Farbe zu dem Wert ist rosa und die wird als transparent interpretiert.
Statt Line könnte man es auch so machen:
Code: | Color ,RGB(255,0,255):Cls |
Es gibt mehrere Methoden das zu machen. |
|
Nach oben |
|
 |
Löwenherz

Anmeldungsdatum: 25.08.2008 Beiträge: 86 Wohnort: auf einer sonnigen Insel :)
|
Verfasst am: 24.09.2009, 08:17 Titel: |
|
|
guten morgen,
wußte gar nicht, dass man bei FB solche Sachen auch ohne Fenster erstellen kann, gut zu wissen!
habe ein einfaches Beispiel mit Rechtecken gemacht, das letzte ist dann transparant, danke für die Infos MOD mit dem Rosa!
Code: |
SCREEN 16,32,,16
LINE(0,0)-(511,383),&hffff00ff,bf
LINE (10,10)-(100,100),RGB(255,0,0),bf
print "fbx versuch"
GetKey
COLOR ,RGB(255,0,100)':CLS
Line(0,0)-(511,383),&hffff00ff,bf
LINE (20,20)-(160,160),RGB(255,100,60),bf
print "fbx 2. versuch"
GetKey
Line(0,0)-(511,383),&hffff00ff,bf
LINE (10,10)-(230,230),RGB(255,0,210),bf
print "fbx 3. versuch"
GetKey
COLOR ,RGB(55,0,250)
Line(0,0)-(511,383),&hffff00ff,bf
LINE (0,0)-(280,280),RGB(255,0,255),bf
print "fbx 4. versuch"
SLEEP |
Color,RgB(255,0,100) bezieht sich hier im Beispiel auf den farbigen Textbereich
schönen Tag noch, löwenherz _________________ Das Leben ist wie eine Pralinenschachtel, man weiß nie, was dort drinnen für tolle wie böse Überraschungen stecken |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 24.09.2009, 16:05 Titel: |
|
|
Ups... ich hab dich falsch verstanden... ich dachte du willst nur in den Puffer malen und diesen abspeichern... *donk*
direkt auf dem desktop... unter linux soll das angeblich mit Cario klappen... weiß aber nicht ob das stimmt und ob das auch unter windows klappt... _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
Luke

Anmeldungsdatum: 14.01.2009 Beiträge: 92 Wohnort: Ostfriesland !
|
Verfasst am: 24.09.2009, 17:03 Titel: |
|
|
@ The Muh Geht schon klar.
@ MOD Warum wird ausgerechnet bei der Farbe rosa durchsichtig gezeichnet? (wegen hintergrundwissen und so... ) _________________ ICH war mal schizophren, aber jetzt sind WIR okay. |
|
Nach oben |
|
 |
tim.vogt

Anmeldungsdatum: 01.03.2009 Beiträge: 56
|
Verfasst am: 24.09.2009, 17:36 Titel: |
|
|
Luke hat Folgendes geschrieben: | Warum wird ausgerechnet bei der Farbe rosa durchsichtig gezeichnet? (wegen hintergrundwissen und so... ) |
Weil man Rosa idR. nicht für Grafiken benutzt und deswegen auch bei anderen Sprachen/Spielen als durchsichtig nimmt. Ansonsten ist das pure Willkür. _________________ "Nichts ist wahrhaftig und alles ist erlaubt." |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 24.09.2009, 17:36 Titel: |
|
|
Weil Rosa die Standardfarbe für Transparenz ist. Das war sie auch schon vor rund 10 Jahren. Wahrscheinlich sogar noch länger. |
|
Nach oben |
|
 |
Luke

Anmeldungsdatum: 14.01.2009 Beiträge: 92 Wohnort: Ostfriesland !
|
Verfasst am: 24.09.2009, 19:04 Titel: |
|
|
Auch mal gut zu wissen. danke! jetzt weiß auch ich mal bescheid  _________________ ICH war mal schizophren, aber jetzt sind WIR okay. |
|
Nach oben |
|
 |
Luke

Anmeldungsdatum: 14.01.2009 Beiträge: 92 Wohnort: Ostfriesland !
|
Verfasst am: 24.09.2009, 20:41 Titel: |
|
|
Ey, probiert das mal aus. ist ganz lustig.
(beenden mit esc)
Code: | dim as integer breite, hoehe,r(20),g(20),b(20),re,gr,bl,x(20),y(20),rx(20),ry(20),i,i2
screeninfo breite, hoehe
screenres breite, hoehe,32,2,16
randomize timer
screenset 1, 0
line (0,0)-(breite-1,hoehe-1),rgb(255,0,255),bf
pcopy 1, 0
for i = 0 to 20
x(i) = rnd*breite-40+20
y(i) = rnd*hoehe-40+20
rx(i) = rnd*1
if rx(i) = 0 then rx(i) = -1
ry(i) = rnd*1
if ry(i) = 0 then ry(i) = -1
r(i) = rnd*230
g(i) = rnd*230
b(i) = rnd*230
next i
do
for i = 0 to 20
re = r(i)
gr = g(i)
bl = b(i)
for i2 = 20 to 0 step -1
circle (x(i),y(i)),i2,rgb(re,gr,bl),,,,F
re = re +1
gr = gr +1
bl = bl +1
next i2
for i2 = 0 to 20
x(i) = x(i) + rx(i)
y(i) = y(i) + ry(i)
if x(i) < 20 or x(i) > breite-20 then rx(i) = rx(i)*-1
if y(i) < 20 or y(i) > hoehe-20 then ry(i) = ry(i)*-1
next
next
pcopy 1, 0
line (0,0)-(breite-1,hoehe-1),rgb(255,0,255),bf
sleep 10
loop while inkey <> chr(27)
end
|
_________________ ICH war mal schizophren, aber jetzt sind WIR okay. |
|
Nach oben |
|
 |
Luke

Anmeldungsdatum: 14.01.2009 Beiträge: 92 Wohnort: Ostfriesland !
|
Verfasst am: 24.09.2009, 21:53 Titel: |
|
|
Noch verbessert:
Code: | dim as integer breite, hoehe,r(20),g(20),b(20),re,gr,bl,x(20),y(20),rx(20),ry(20),i,i2,speed
dim as string a
screeninfo breite, hoehe
screenres breite, hoehe,32,2,16
randomize timer
screenset 1, 0
speed = 4
line (0,0)-(breite-1,hoehe-1),rgb(255,0,255),bf
pcopy 1, 0
for i = 0 to 20
x(i) = rnd*breite-40+20
y(i) = rnd*hoehe-40+20
rx(i) = rnd*10
if rx(i) < 5 then rx(i) = -1*speed else rx(i) = speed
ry(i) = rnd*10
if ry(i) < 5 then ry(i) = -1*speed else ry(i) = speed
r(i) = rnd*230
g(i) = rnd*230
b(i) = rnd*230
next i
do
for i = 0 to 20
re = r(i)
gr = g(i)
bl = b(i)
for i2 = 20 to 0 step -1
circle (x(i),y(i)),i2,rgb(re,gr,bl),,,,F
re = re +1
gr = gr +1
bl = bl +1
next i2
next
for i2 = 0 to 20
x(i2) = x(i2) + rx(i2)
y(i2) = y(i2) + ry(i2)
if x(i2) < 20 or x(i2) > breite-20 then rx(i2) = rx(i2)*-1
if y(i2) < 20 or y(i2) > hoehe-20 then ry(i2) = ry(i2)*-1
next
pcopy 1, 0
line (0,0)-(breite-1,hoehe-1),rgb(255,0,255),bf
loop while inkey <> chr(27)
end
|
wenn ihr im programm die Zahl speed durch z.B 1 ersetzt, dann bewegen sich die Kugeln langsamer. Nur so zum zeitvertreib.  _________________ ICH war mal schizophren, aber jetzt sind WIR okay. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|