Seite 2 von 2

Verfasst: 16.08.2006 01:03
von Ligatur
HeX0R hat geschrieben:Du erstellst einen 1 Pixel grossen Screen.
Auch mit Autostretch bleibt er dennoch relativ gesehn 1 Pixel gross.

Ich sehe zwar keinen Farbverlauf (wieso auch ?), aber alles ist weiss, was auch logisch ist, weil man quasi nur ein irre aufgeblasenes weisses Sprite sieht.

Code: Alles auswählen

If OpenWindowedScreen(WindowID(0), 0, 0, 1, 1, 1, 0, 0)  ; wir benötigen nicht die exakte Bildschirmbreite/-höhe, da diese automatisch angepasst werden...
Aus der Purebasic Hilfe zu OpenWindowedScreen. Das wird also nicht der Fehler sein. Bei mir entsteht kein Farbverlauf.

Verfasst: 16.08.2006 02:04
von Frogger
>>Jetzt habe ich noch einen weissen Balken über dem Schwarzen Hintergrund im Windows. Vielleicht auch noch die Höhe korrigieren?
Der weiße Balken kommt von

Code: Alles auswählen

  For i = 0 To #WindowWidth Step 10
  DisplaySprite(#box,i,0)
  Next 
Es wird alle 10 Pixel ein 10 Pixel breites Quadrat gezeichnet.
Ich nehme mal an, dass a14xerus das machen wollte.
Andernfalls kann ich mir nicht erklären wozu die For-Schleife gut sein soll.

Verfasst: 16.08.2006 07:18
von #NULL
<willauchmitmachen>
@a14xerus
autostretch bezieht sich nur auf das darstellen des screens im fenster. beim zeichnen auf den screen, besitzt dieser trotzdem die angegebene groesse (1x1). farbverläufe würde ich nicht mit autostretch realisieren, zumal du den screen dann nicht mehr für andere ("objekt-")sprites nutzten kannst. dann macht autostretch auch nur sinn mit einem resizable window.

Code: Alles auswählen

If InitSprite() = 0
  MessageRequester("Error", "Fehlercode 1", #MB_OK|#MB_ICONERROR)
  End
EndIf
If InitSound() = 0
  MessageRequester("Error", "Fehlercode 2", #MB_OK|#MB_ICONERROR)
  End
EndIf
If InitKeyboard() = 0
  MessageRequester("Error", "Fehlercode 3", #MB_OK|#MB_ICONERROR)
  End
EndIf
If InitMouse() = 0
  MessageRequester("Error", "Fehlercode 4", #MB_OK|#MB_ICONERROR)
  End
EndIf

Enumeration
  #window_1
 
  #box
EndEnumeration

#WindowWidth = 400
#WindowHeight = 300

Global Ball_X.l = 0
Global Ball_Y.l = 0

Procedure Fenster()
  If OpenWindow(#window_1,0,0,#WindowWidth,#WindowHeight,"MiniGame by Alexander N",#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget |#PB_Window_SizeGadget )
    If CreateGadgetList(WindowID(#window_1))
      If OpenWindowedScreen(WindowID(#window_1),0,0,#WindowWidth,#WindowHeight,1,0,0)
     
        CreateSprite(#box,#WindowWidth,#WindowHeight)
          StartDrawing(SpriteOutput(#box))
            For i=0 To #WindowWidth
              LineXY(i,0,i,#WindowHeight, (i*255/#WindowWidth)<<8 )
            Next
            For i=100 To 0 Step -1
              Circle(#WindowWidth/2,#WindowHeight/2, i, (100-i)*255/100 )
            Next
            ;Box(0,0,10,10,RGB(255,255,255))
          StopDrawing()
      EndIf
    EndIf
  EndIf
EndProcedure


Procedure ende()
  End
EndProcedure


Fenster()
Repeat
  Delay(5)
 
  Event = WindowEvent()
  WindowID = EventWindow()
  GadgetID = EventGadget()
  EventType = EventType()
 
  If Event = #PB_Event_CloseWindow
    Select MessageRequester("Ende", "Wollen sie wirklich beenden?", #MB_YESNO|#MB_ICONQUESTION)
      Case #IDYES
        ende()
    EndSelect
  EndIf
 
  ExamineKeyboard()
  ClearScreen($000)

  ;For i = 0 To #WindowWidth Step 10
    DisplaySprite(#box,0,0)  ;wenn ich das hier auskommentier habe ich einen normalen schwarzen hintergund.. wenn nicht kommt bei mir ein farbverlauf.. oder macht das nur meine Grafikkarte?0
  ;Next
 
  FlipBuffers()
ForEver

Verfasst: 16.08.2006 08:10
von HeX0R
Ligatur hat geschrieben:
HeX0R hat geschrieben:Du erstellst einen 1 Pixel grossen Screen.
Auch mit Autostretch bleibt er dennoch relativ gesehn 1 Pixel gross.

Ich sehe zwar keinen Farbverlauf (wieso auch ?), aber alles ist weiss, was auch logisch ist, weil man quasi nur ein irre aufgeblasenes weisses Sprite sieht.

Code: Alles auswählen

If OpenWindowedScreen(WindowID(0), 0, 0, 1, 1, 1, 0, 0)  ; wir benötigen nicht die exakte Bildschirmbreite/-höhe, da diese automatisch angepasst werden...
Aus der Purebasic Hilfe zu OpenWindowedScreen. Das wird also nicht der Fehler sein. Bei mir entsteht kein Farbverlauf.
Antwort:
#NULL hat geschrieben: autostretch bezieht sich nur auf das darstellen des screens im fenster. beim zeichnen auf den screen, besitzt dieser trotzdem die angegebene groesse (1x1)
Jetzt hast du es schon zweimal dastehen, vielleicht kommt es dir jetzt ja näher...

Verfasst: 16.08.2006 15:51
von a14xerus
Ich war seit ich die Frage gestellt hatte nichtmehr on.. Ich bin nicht drauf gekommen, das die relative Größe des Screens nur 1x1 ist.. jetz ist es mir natürlich klar.. danke an alle
ach und $000 steht auch in der hilfe als kurzschreibweise^^

Verfasst: 18.08.2006 12:46
von Kaeru Gaman
Ligatur hat geschrieben:

Code: Alles auswählen

If OpenWindowedScreen(WindowID(0), 0, 0, 1, 1, 1, 0, 0)  ; wir benötigen nicht die exakte Bildschirmbreite/-höhe, da diese automatisch angepasst werden...
Aus der Purebasic Hilfe zu OpenWindowedScreen. Das wird also nicht der Fehler sein. Bei mir entsteht kein Farbverlauf.
gut, vielleicht ist es nicht sein fehler, aber trotzdem.
ist da die help mal wieder zu speziell?
hab hier kein PB zur Hand.
Ich frag mich halt, was das für ein Beispiel ist, wo ein 1x1 screen gemacht wird.
ich schätze halt, dass da vielleicht doch eins ums andere beispiel doch etwas zu hochtrabend für anfänger ist.

> und $000 steht auch in der hilfe als kurzschreibweise^^
das würde ich auch mal korrigieren.
es ist zwar nicht wirklich falsch in dem sinne dass es keine Null wäre,
aber der Farbwert ist nunmal eine 24bit-zahl, und eine 24bit-Zahl hat 6 stellen als HEX.