Seite 1 von 2

Backgroundcolor eines Windows/Farbverläufe

Verfasst: 20.05.2007 15:05
von Dark Skillu
Hallo ich würde gerne den Hintergrund eines Fenster z.B. rot färben, das funktioniert ja auch mit

Code: Alles auswählen

SetWindowColor
aber wie schaffe ich einen Farbverlauf von z.B. gelb zu rot?
Jemand eine Idee?

Sowas ähnliches wie die Hintegrundfarbe von diesem Sprite, war glaub ich von FluidByte der Code, sry wenn du es nciht warst und nen anderer

Code: Alles auswählen

InitSprite() : InitKeyboard()

OpenWindow(0,0,0,640,480,"void",#WS_SYSMENU | #WS_CAPTION | 1)
OpenWindowedScreen(WindowID(0),0,0,640,480,0,0,0)
CreateSprite(0,640,480)

StartDrawing(SpriteOutput(0))
For i=0 To 479
Box(0,i,640,i,RGB(i*255/479,0,0))
Next
StopDrawing()

Repeat
   EventID = WindowEvent()
   ExamineKeyboard()
   ClearScreen(255)     
   DisplaySprite(0,0,0)   
   FlipBuffers()
Until EventID = 16 Or KeyboardPushed(1)

Verfasst: 20.05.2007 15:24
von Andreas_S
Mit

Code: Alles auswählen

StartDrawing(WindowOutput(Window))
dann kannst mit LineXY() deinen schönen Farbverlauf zeichnen.


//Edit: oder du hast ein Image und machst es mit DrawImage(Image)

PS. du musst in der Hauptschleife das Zeichnen ausführen, weil es sonst "beschädigt" werden kann

Verfasst: 20.05.2007 15:30
von Dark Skillu
Das mit Startdrawing ist ja relativ klar, aber wenn ich nen Hintergrund mit LineXY zeichne dann muss ich ja tausend linien ziehen, gibts dafür ne schleife? ForNext oder so?

Verfasst: 20.05.2007 15:30
von PureBasic4.0
Dann mach die Linie doch einfach ein bisschen dicker!

Verfasst: 20.05.2007 15:34
von Andreas_S
Ich hab mal ne Prozedure gemacht mit dem man Farbübergänge zeichnen kann. Den setzt man einfach in StartDrawing() und StopDrawing().
Brauchst den ?

Verfasst: 20.05.2007 15:37
von Dark Skillu
Joa gerne, bewirkt die prozedure sowas wie im Code in meinem erste post?Also so einen Farbverlauf, so etwas ähnliches hätte ich gerne als Hintergrund von nem Window wenn es machbar ist

Verfasst: 20.05.2007 15:38
von Kaeru Gaman
denk halt dran, dass man sachen die direkt auf fenster gemalt werden, selber refreshen muss...

farbverlauf funktioniert z.b. so:

Code: Alles auswählen

OpenWindow(0,0,0,384,256,"Farbverlauf", #PB_Window_ScreenCentered | #PB_Window_SystemMenu )

StartDrawing(WindowOutput(0))
  For n=0 To 127
    Line(0,128+n,384,0,RGB(0,0,255-n))
    Line(0,127-n,384,0,RGB(n,n,255))
  Next
StopDrawing()

Repeat:Until WaitWindowEvent() = #PB_Event_CloseWindow

Verfasst: 20.05.2007 15:43
von Dark Skillu
Mal eine dumme Frage, ist der Doppelpunkt zwischen Repeat und Until nötig? Was meinst du genau mit refreshen?

Danke für eure Hilfe bis jetzt :allright:

Verfasst: 20.05.2007 15:45
von Kiffi
Dark Skillu hat geschrieben:Mal eine dumme Frage, ist der Doppelpunkt zwischen Repeat und Until nötig?
Versuch macht kluch. Du kannst ihn ja mal entfernen ;-)

Grüße ... Kiffi

Verfasst: 20.05.2007 15:47
von Dark Skillu
Danke :oops: Aber was ist mit dem refreshen?