Seite 4 von 5

arng_ugs_08

Verfasst: 21.03.2008 22:24
von scholly
Und wieder einer fertig :)

; About TNG Requester scholly 08 Version 1.0
; by scholly
; (intern arng_ugs_08.pb)
; WindowsXP(SP2), PB 4.10
;
; Textgadgets + Screen mit Zylinder-Scroller und Scroll-Bouncer

Code: Alles auswählen

; About TNG Requester scholly 08 Version 1.0
; by scholly
; (intern arng_ugs_08.pb)
; WindowsXP(SP2), PB 4.10
; 
; Textgadgets + Screen mit Zylinder-Scroller und Scroll-Bouncer

Procedure DrawArcSprite(SpriteID.l, x.l, y.l, Radius.l, RollAngle.d, yHeight.l, ZoomX.d, CountX.l)
  ; NicTheQuick auf http://www.purebasic.fr/german/viewtopic.php?t=15752&start=20
  EnableExplicit
  Protected Width.l, Height.l, Measure.d, rWidth.l, Px.l, cos.d, sin.d, a.d, Px3.l
 
  Width = SpriteWidth(SpriteID)   ;Breite des Sprites
  Height = SpriteHeight(SpriteID) ;Höhe des Sprites
  rWidth = Radius * 2             ;Sichtbare Breite
  Measure = Radius * 2 * #PI      ;Umfang des Zylinders
 
  If CountX > 0
    ZoomX = 2 * rWidth / (Width * CountX)
  Else
    ZoomX = ZoomX * Width / Measure
  EndIf
 
  For Px = 0 To rWidth
    cos = 2.0 * Px / rWidth - 1.0
    sin = Sqr(1 - cos * cos)
    a = ATan(sin / cos)
    If a <= 0.0 : a + #PI : EndIf
    a = #PI - a + RollAngle
   
    Px3 = Int(a * rWidth / (#PI * ZoomX))
    If Px3 < 0
      Px3 = Width - ((-Px3) % Width) - 1
    Else
      Px3 = Px3 % Width
    EndIf
   
    ClipSprite(SpriteID, Px3, 0, 1, Height)
    DisplaySprite(SpriteID, x + Px, y + sin * yHeight)
  Next
 
  ClipSprite(SpriteID, #PB_Default, #PB_Default, #PB_Default, #PB_Default)
  DisableExplicit
EndProcedure

Procedure MIRRORSPRITE(SPRITEID.l, Direction.l)
  ; chaoskid auf http://www.purebasic.fr/german/archive/viewtopic.php?t=2636
  EnableExplicit
  Protected hdc.l, height.l, width.l
  hdc = StartDrawing(SpriteOutput(SPRITEID)) 
    Height = SpriteHeight(SPRITEID) 
    Width = SpriteWidth(SPRITEID) 
    If Direction 
      StretchBlt_(hdc, 0, Height, Width, -Height, hdc, 0, 0, Width, Height, #SRCCOPY) 
    Else 
      StretchBlt_(hdc, Width, 0, -Width, Height, hdc, 0, 0, Width, Height, #SRCCOPY) 
    EndIf 
  StopDrawing() 
  DisableExplicit
EndProcedure 

Procedure ar8()
  EnableExplicit
  
  Protected ar8_quit = #False

  If InitSprite()=0 
    MessageRequester("ERROR","ar8: Can't InitSprite() !",#MB_ICONERROR)
    End
  EndIf 

  Protected win_Width = 400
  Protected win_Height = 440
  Protected ar8_win_titel.s  = "About-Requester - TNG "

  Protected ar8_win_nr = OpenWindow(#PB_Any, 0, 0, win_Width, win_Height, ar8_win_titel ,#PB_Window_ScreenCentered | #PB_Window_SystemMenu)
  If ar8_win_nr=0 
    MessageRequester("ERROR","ar8: Can't open window !",#MB_ICONERROR)
    End
  EndIf
  
  If CreateGadgetList(WindowID(ar8_win_nr)) = 0
    MessageRequester("ERROR","ar8: Can't create Gadgetlist !",#MB_ICONERROR)
    CloseWindow(ar8_win_nr)
    End
  EndIf
  
  Protected tg1 = TextGadget(#PB_Any,0, 5,win_width,20,"PureBoard Requester Suite",#PB_Text_Center)
  Protected tg2 = TextGadget(#PB_Any,0,30,win_width,20,"schollys Requester 8  Version 42",#PB_Text_Center)
  Protected tg3 = TextGadget(#PB_Any,0,55,win_width,20,"Copyleft März 2008",#PB_Text_Center)

  Protected ar8_scr_nr = OpenWindowedScreen(WindowID(ar8_win_nr), 10, 100, win_Width-20, win_Height-110, 0, 0, 0)
  If ar8_scr_nr=0 
    MessageRequester("ERROR","ar8: Can't open ar8-screen !",#MB_ICONERROR)
    CloseWindow(ar8_win_nr)
    End
  EndIf
  
  ;Zylinder-Scroller-Daten - Anfang  
  Protected File.s = #PB_Compiler_Home+"examples\sources\Data\PureBasicLogo.bmp"
  
  Protected sprite_unten = LoadSprite(#PB_Any, File)
  If sprite_unten=0 
    MessageRequester("ERROR","ar8: Can't load sprite_unten !",#MB_ICONERROR)
    CloseScreen()
    CloseWindow(ar8_win_nr)
    End
  EndIf
  
  Protected sprite_oben  = LoadSprite(#PB_Any, File)
  If sprite_oben=0 
    MessageRequester("ERROR","ar8: Can't load sprite_oben !",#MB_ICONERROR)
    FreeSprite(sprite_unten)
    CloseScreen()
    CloseWindow(ar8_win_nr)
    End
  EndIf
  
  MIRRORSPRITE(sprite_oben, 0)

  Protected Radius = 180                  ; Durchmesser verändern
  Protected ZoomX.d = 1                     ; Breite des Logos
  Protected CountX = 4                    ; Anzahl der Logos hintereinander
  Protected y_Height_unten = Radius / 1.5 ; Ausbuchtungshöhe nach unten, Negativ nach oben, Radius+1 = grade  
  Protected y_Height_oben  = Radius /-1.5 ; Ausbuchtungshöhe nach unten, Negativ nach oben, Radius+1 = grade  
  Protected y_offset = 130
  Protected x_offset = 10
  Protected Rolloben.d  = 0.0
  Protected Rollunten.d = 0.0  
  ;Zylinder-Scroller-Daten - Ende

  ;Bouncer -Anfang   
  Protected bnctxt.s    = " all coded with "
  Protected bncfont_id  = LoadFont(#PB_Any,"Arial", 16,#PB_Font_Bold)

  ;nun brauchen wir die Pixellänge des einfachen scrolltextes
  StartDrawing(WindowOutput(ar8_win_nr))
    DrawingFont(FontID(bncfont_id))
    Protected bncstr_len = TextWidth(bnctxt)
  StopDrawing()

  ;ist der Scrolltext länger als das Fenster breit, meckern
  If bncstr_len > win_width / 3 * 2
    MessageRequester("Obacht !!", "ar8: Scrolltext zu lang zum Bouncen") 
    End
  EndIf

  Protected bnc_drawoffset_x = win_width - bncstr_len - 40
  Protected bnc_drawoffset_y = y_offset+22 ; hier den vertikalen Offset im WindowScreen anpassen

  Protected bnc_scrollrichtung.s = "links"
  ;Bouncer-Daten - Ende

  Repeat
    ClearScreen(0)
    
    ;bouncer
    If bnc_scrollrichtung = "links"
      bnc_drawoffset_x - 1 ; Scrollgeschwindigkeit nach links einstellen....
      If bnc_drawoffset_x < 15
        bnc_scrollrichtung = "rechts"
      EndIf
    ElseIf bnc_scrollrichtung = "rechts"
      bnc_drawoffset_x + 1 ; Scrollgeschwindigkeit nach rechts einstellen....
      If bnc_drawoffset_x > win_width - 20 - bncstr_len - 15
        bnc_scrollrichtung = "links"
      EndIf
    EndIf

    StartDrawing(ScreenOutput())
      DrawingFont(FontID(bncfont_id))
      DrawText(bnc_drawoffset_x,bnc_drawoffset_y,bnctxt,#White,#Black)
    StopDrawing()
 
    ;obere Hälfte der Cylinderscrollers
    Rolloben - #PI / 180.0  ;scrollt vorwärts (+) oder rückwärts (-) je >Divisor, desto langsam
    If Rolloben > 2.0 * #PI  : Rolloben - 2.0 * #PI : EndIf
    If Rolloben = 0.0        : Rolloben + 2.0 * #PI : EndIf
    If Rolloben < 0.0        : Rolloben + 2.0 * #PI : EndIf 
    DrawArcSprite(sprite_oben, x_offset, y_offset, Radius, Rolloben, y_Height_oben  ,ZoomX, CountX)
  
    ;untere Hälfte der Cylinderscrollers
    Rollunten + #PI / 180.0  ;scrollt vorwärts (+) oder rückwärts (-) je >Divisor, desto langsam
    If Rollunten > 2.0 * #PI  : Rollunten - 2.0 * #PI : EndIf
    If Rollunten = 0.0        : Rollunten + 2.0 * #PI : EndIf
    If Rollunten < 0.0        : Rollunten + 2.0 * #PI : EndIf
    DrawArcSprite(sprite_unten, x_offset, y_offset, Radius, Rollunten, y_Height_unten ,ZoomX, CountX)
 
    FlipBuffers()
 
    Protected ar8_EventID = WaitWindowEvent(1)
    If EventWindow() = ar8_win_nr
      If ar8_EventID = #PB_Event_CloseWindow
        ar8_quit = #True
        FreeSprite(sprite_oben)
        FreeSprite(sprite_unten)
        CloseScreen()
        CloseWindow(ar8_win_nr)
      EndIf
    EndIf
  
  Until ar8_quit = #True
 
 DisableExplicit
EndProcedure

ar8()
End

Verfasst: 21.03.2008 22:30
von Kaeru Gaman
sieht gut aus :allright:

...und so wies jetzt ist kann man es ja per IncludeFile einbinden,
man muss nur die beiden letzten zeilen entfernen.
Alles ist Wölkchen.

Verfasst: 21.03.2008 22:57
von Fluid Byte
Sehe Ich da etwa das Schlüsselwort "Procedure"? Er ist also doch lernfähig. Bild

Zudem sieht es auch noch gut aus und das ganz ohne Sprites. Cool wäre natürlich noch wenn der Kreis zusätzlich nach oben und unten schlingern würde bzw. man die Rotation mit den Cursor-Tasten steuern könnte.

Abgesehen davon ist es wirklich ... Bild

Verfasst: 21.03.2008 23:29
von scholly
Fluid Byte hat geschrieben:und das ganz ohne Sprites.
????

Code: Alles auswählen

Protected sprite_unten = LoadSprite(#PB_Any, File)
...
Protected sprite_oben  = LoadSprite(#PB_Any, File)
...
MIRRORSPRITE(sprite_oben, 0)
...
ClipSprite(SpriteID, Px3, 0, 1, Height)
DisplaySprite(SpriteID, x + Px, y + sin * yHeight)
Fluid Byte hat geschrieben:Cool wäre natürlich noch wenn der Kreis zusätzlich nach oben und unten schlingern würde
Kann ich mir nicht vorstellen, bitte erläuter.
Fluid Byte hat geschrieben:bzw. man die Rotation mit den Cursor-Tasten steuern könnte.
Steuern ?
Das ist doch nur eine About-Requester-Vorlage.
Steuern kann man NTQs Vorlage, Link is ja drin...
Fluid Byte hat geschrieben:Abgesehen davon ist es wirklich ... Bild
Danke, aber ich hab nur interessanten Code erfolgreich gefunden/erfragt und dann 'n bischen geschüttelt... :lol:

arng_ugs_09

Verfasst: 23.03.2008 21:12
von scholly
Mein vorletzter:

; About TNG Requester scholly 09 Version 1.0
; by scholly
; (intern arng_ugs_09.pb)
; WindowsXP(SP2), PB 4.10
;
; StarWars-Scroller: Froggerprogger in http://www.purebasic.fr/german/viewtopi ... 0&start=24
; Sternen-Scroller: benny in http://www.purebasic.fr/german/archive/ ... 52&start=7

Code: Alles auswählen

; About TNG Requester scholly 09 Version 1.0
; by scholly
; (intern arng_ugs_09.pb)
; WindowsXP(SP2), PB 4.10
; 
; StarWars-Scroller: Froggerprogger in  http://www.purebasic.fr/german/viewtopic.php?t=4100&start=24
; Sternen-Scroller: benny in http://www.purebasic.fr/german/archive/viewtopic.php?t=5052&start=7

 Macro fill_AR9starstruc
          Stars(dummy)\x  = Random(400)-250 
          Stars(dummy)\y  = Random(400)-250 
          Stars(dummy)\z  = 100 + Random(50) 
          Stars(dummy)\zv = 0.9 + Random (25)/10 
 EndMacro
 
Procedure ar9_main() 
  EnableExplicit
  
  ;;ar9-GUI
  ;#########################################################################################
  If InitSprite()=0 
    MessageRequester("ERROR","ar9: Can't InitSprite() !",#MB_ICONERROR)
    End
  EndIf

  Protected ar9_quit    = #False
  
  Protected scr_width   = 400 
  Protected scr_height  = 400
     
  Protected win_Width   = scr_width + 20
  Protected win_Height  = scr_height+ 90
  Protected win_titel.s = "About-Requester - TNG " 
  
  ; Linkes Logo holen Anfang
  Protected PB_icon_img_id = ExtractIcon_(0,#PB_Compiler_Home+"PureBasic.exe",0)
  Protected leftlogo_img1_nr = CreateImage(#PB_Any,32,32)
  Protected DC=StartDrawing(ImageOutput(leftlogo_img1_nr))
    DrawIcon_(DC,0,0,PB_icon_img_id)
  StopDrawing()
  ; Linkes Logo holen Ende
  
  ; rechtes logo holen
  Protected rightlogo_img_nr = LoadImage(#PB_Any, #PB_Compiler_Home+"examples\sources\Data\Geebee2.bmp")
  
  ;; Gui aufbauen
  Protected ar9_win_nr = OpenWindow(#PB_Any, 0, 0, win_Width, win_Height, win_titel ,#PB_Window_ScreenCentered | #PB_Window_SystemMenu)
  If ar9_win_nr=0 
    MessageRequester("ERROR","ar8: Can't open window !",#MB_ICONERROR)
    End
  EndIf
  
  If CreateGadgetList(WindowID(ar9_win_nr)) = 0
    MessageRequester("ERROR","ar9: Can't create Gadgetlist !",#MB_ICONERROR)
    CloseWindow(ar9_win_nr)
    End
  EndIf
  
  Protected tg1 = TextGadget(#PB_Any,0, 5,win_width,20,"PureBoard Requester Suite",#PB_Text_Center)
  Protected tg2 = TextGadget(#PB_Any,0,30,win_width,20,"schollys Requester 9  Version 0815",#PB_Text_Center)
  Protected tg3 = TextGadget(#PB_Any,0,55,win_width,20,"Copyleft März 2008",#PB_Text_Center)
  
  StartDrawing(WindowOutput(ar9_win_nr))
    DrawImage(ImageID(leftlogo_img1_nr),10,7,64,64)
    DrawImage(ImageID(rightlogo_img_nr),win_Width-64-10,7,64,64)
  StopDrawing()

  Protected ar9_scr_nr = OpenWindowedScreen(WindowID(ar9_win_nr), 10, 80, scr_width, scr_height, 0, 0, 0)
  If ar9_scr_nr=0 
    MessageRequester("ERROR","ar9: Can't open ar9-screen !",#MB_ICONERROR)
    CloseWindow(ar9_win_nr)
    End
  EndIf
  ;#########################################################################################
  
  ;;Sternen-Scroller
  ;#########################################################################################
  ; Struktur eines Sterns ... 
  Structure ar9_3DStar 
    x.f   ; X-Koordinate 
    y.f   ; Y-Koordinate 
    z.f   ; Z-Koordinate 
    zv.f  ; Z-Geschwindigkeit 
  EndStructure

  ;;Sternen-Scroller-Definitionen
  Protected centerofscrw = scr_width/2       ; Koordinaten der 
  Protected centerofscrh = scr_height/2 ;-100 ; Materiequelle ;)

  Protected Sternenzahl.l = 2000
  Protected Dim Stars.ar9_3DStar(Sternenzahl)
  Protected dummy
  
  ;StarField initiieren 
  For dummy = 0 To Sternenzahl
    fill_AR9starstruc 
  Next dummy
  ;#########################################################################################

  ;; StarWars-Scroller
  ;#########################################################################################
  ;; Für FPS-Anzeige
  Protected starttime = ElapsedMilliseconds()
  Protected lastFpsTime = ElapsedMilliseconds()
  Protected framecounter = 0
  
  ;;StarWars-Scroller Definitionen
  #numLines = 19
  #StretchFactor = 3.0
  #HeightScale = 0.75
  #WidthScale = 1.2
  #FontSize = 24 ; pt
  #LineHeight = 50 ; pixel
  #SizeFactor = 1
  #TextSpeed = 3.0
  #LineSpace = 0.05
  
  Protected firstlinedist.f = 1.0

  Protected ScreenX_halb.l = scr_width/2
  Protected ScreenY_halb.l = scr_height/2

  Protected sw_font = LoadFont(#PB_Any, "Verdana", #FontSize, #PB_Font_Bold |#PB_Font_HighQuality)

  ;- create the textlines
  Protected Dim Textlines.s(#numLines-1)
  Textlines(0) =  "About-Requester"
  Textlines(1) =  "Next Generation"
  Textlines(2) =  "Episode 9"
  Textlines(3) =  "Froggerprogger"
  Textlines(4) =  "und benny"
  Textlines(5) =  "haben diese Effekte"
  Textlines(6) =  "veröffentlicht"
  Textlines(7) =  "Credits an"
  Textlines(8) =  "Riacon und tobe"
  Textlines(9) =  "für Verbesserungen"
  Textlines(10) = "sieht schon nett, aber"
  Textlines(11) = "noch was tatterig aus"
  Textlines(12) = "vielleicht find ich"
  Textlines(13) = "ja noch ein Rezept"
  Textlines(14) = "dagegen"
  Textlines(15) = "Ansonsten hätte"
  Textlines(16) = "hjbremer noch"
  Textlines(17) = "was ähnliches,"
  Textlines(18) = "siehe Source :)"; http://www.purebasic.fr/german/viewtopic.php?t=15794&start=20

  ;- get the LineWidth
  Protected Dim LineWidth.l(#numLines-1)
  Protected i.l
  Protected tempImage = CreateImage(#PB_Any, 100, #LineHeight)
  ImageID(tempImage)
  StartDrawing(ImageOutput(tempImage))
    DrawingFont(FontID(sw_font))
    For i=0 To #numLines-1
      LineWidth(i) = TextWidth(Textlines(i))
      If LineWidth(i) > scr_width
        Debug "eigentlich zu lang: "+Str(i)+" "+Textlines(i)
      EndIf
    Next
   StopDrawing()
  FreeImage(tempImage)  

  ;- display the images
  Dim lastImagePosXY.l(#numLines-1, 1)
  For i=0 To #numLines-1
    lastImagePosXY(i, 0) = $80000000
    lastImagePosXY(i, 1) = $7FFFFFFF
  Next
  
  ; _Ein_ Sprite für alle gestauchten Text-Images 
  Protected sw_sprite_nr = CreateSprite(#PB_Any,scr_width,scr_height)
  
  ;- create and transform the images/sprites
  Protected Dim OrigTextLineImages.l(#numLines-1)
  Protected linewidth.l, j.l, k.l, offset.l
  Protected lineoffset.f

  For i=0 To #numLines-1
    
    lineWidth = LineWidth(i) + 10

    tempImage = CreateImage(#PB_Any, lineWidth, #LineHeight)
    Dim TempImage.l(lineWidth-1, #LineHeight-1)

    StartDrawing(ImageOutput(tempImage))
      Box(0,0,lineWidth,#LineHeight,0)
      DrawingMode(1)
      FrontColor(RGB(255,200,60))
      DrawingFont(FontID(sw_font))
      DrawText((lineWidth - TextWidth(Textlines(i)))/ 2, 0,Textlines(i))
      For j=0 To #LineHeight-1
        For k=0 To lineWidth-1
          TempImage(k, j) = Point(k,j)
        Next
      Next
    StopDrawing()
    FreeImage(tempImage)
        
    CreateSprite(i, lineWidth, #LineHeight)
    
    CreateImage(i, lineWidth, #LineHeight)
    StartDrawing(ImageOutput(i))
      Box(0,0,lineWidth,#LineHeight,0)
      For j=0 To #LineHeight-1
        lineoffset = #StretchFactor * (#LineHeight-1 - j) / 1000.0
        For k=0 To lineWidth/2 - 1
          offset = lineoffset * k
          If k+offset >= lineWidth/2
            Break
          EndIf
          Plot(lineWidth/2 + k, j, TempImage(lineWidth/2 + k + offset, j))
          Plot(lineWidth/2 - k, j, TempImage(lineWidth/2 - k - offset, j))
        Next
      Next
    StopDrawing()
  Next
  ;#########################################################################################


  ;;Hauptschleife
  ;#########################################################################################
  ;#########################################################################################
  Protected sx, sy, fps, h, w, xpos, ypos, ar9_EventID
  Protected liney.f, yposf.f, sizeFac.f
  
  Repeat 
      
    ; Logos direkt ins Fenster zeichnen
    StartDrawing(WindowOutput(ar9_win_nr))
      DrawImage(ImageID(leftlogo_img1_nr),10,7,64,64)
      DrawImage(ImageID(rightlogo_img_nr),win_Width-64-10,7,64,64)
    StopDrawing()
    
    ; Screeninhalt entsorgen
    ClearScreen(#Black)
          
    ; SternenScroller Anfang (als erstes, darf überschrieben werden !!)
    StartDrawing(ScreenOutput()) 
      DrawingMode(1) 
      For dummy = 0 To Sternenzahl 
        Stars(dummy)\z = Stars(dummy)\z - Stars(dummy)\zv ; Star comes closer .... 
        SX = Stars(dummy)\x / Stars(dummy)\z * 100 + centerofscrw 
        SY = Stars(dummy)\y / Stars(dummy)\z * 100 + centerofscrh 
        If SX < 0 Or SY < 0 Or SX >= scr_width Or SY >= scr_height Or Stars(dummy)\z < 1
          fill_AR9starstruc 
        Else 
          Box ( SX, SY,2,2, #Yellow ) 
        EndIf 
      Next dummy
    StopDrawing()
    ;SternenScroller Ende 
    
    ;FPS-Anzeige Anfang
    framecounter + 1
    If ElapsedMilliseconds() - lastFpsTime > 1000
      fps = framecounter
      framecounter = 0
      lastFpsTime = ElapsedMilliseconds()
    EndIf    
    StartDrawing(ScreenOutput())
      DrawingMode(1)
      FrontColor(#White)
      DrawText(0,0,Str(fps)+ " fps")
    StopDrawing()  
    ;FPS-Anzeige Ende
    
    ;StarWars-Scroller Anfang        
    firstlinedist.f = 1.0 + #TextSpeed * 1.0 * (ElapsedMilliseconds() - starttime) / 100000.0
   
    For i=0 To #numLines - 1
      liney = firstlinedist - #LineSpace * (i * #HeightScale * #LineHeight) / (#numLines - 1)
      If liney < 1.0
        Break
      EndIf
      liney * liney
      yposf = (scr_width * liney + scr_width) / (2.0 * liney)
      sizeFac = (#SizeFactor * yposf) / ScreenY_halb - 1.0

      h = Int(ImageHeight(i) * sizeFac * #HeightScale)
      w = Int(ImageWidth(i) * sizeFac * #WidthScale)

      xpos = ScreenX_halb - w/2
      ypos = Int(yposf)
     
      If xpos < lastImagePosXY.l(i, 0)
        xpos = lastImagePosXY.l(i, 0)
      EndIf
      If ypos > lastImagePosXY.l(i, 1)
        ypos = lastImagePosXY.l(i, 1)
      EndIf
      lastImagePosXY.l(i, 0) = xpos
      lastImagePosXY.l(i, 1) = ypos
     
      If ypos >= scr_width
        Break
      EndIf
     
      If w > 0 And h > 0
        StartDrawing(SpriteOutput(sw_sprite_nr))
          DrawImage(ImageID(i), xpos, ypos, w, h)
        StopDrawing()
      EndIf
    Next
    DisplayTransparentSprite(sw_sprite_nr,0,0)
    
    ;Starwars-Scroller Ende   

    FlipBuffers()
 
    ar9_EventID = WaitWindowEvent(1)
    If EventWindow() = ar9_win_nr
      If ar9_EventID = #PB_Event_CloseWindow
        ar9_quit = #True
        FreeSprite(sw_sprite_nr)
        FreeImage(leftlogo_img1_nr)
        FreeImage(rightlogo_img_nr)
        CloseScreen()
        CloseWindow(ar9_win_nr)
      EndIf
    EndIf
  
  Until ar9_quit = #True  

DisableExplicit
EndProcedure

ar9_main()

End 

Verfasst: 23.03.2008 22:25
von NicTheQuick
Interessant ist auch im Sternenscroller im Else-Zweig in der For-Schleife das
hier zu schreiben:

Code: Alles auswählen

          color = 255 - 255 * ((sx - centerofscrw) * (sx - centerofscrw) + (sy - centerofscrh) * (sy - centerofscrh)) / ((centerofscrw * centerofscrw) + (centerofscrh *centerofscrh))
          Plot(sx, sy, RGB(color, color, color))
Dann sind die Sterne außen dunkler als innen. :wink:

Verfasst: 23.03.2008 23:09
von scholly
So ähnlich sah das mal aus, aber ich hab dann lieber gelb/gelb genommen, um das Zittern des SW-Scrollers etwas zu kaschieren.
Ich habs auch nicht hinbekommen, das "Gelb" zu variieren, dafür fehlt mir das "kreative Verständnis", wie man das erreicht werden könnte.

Aber der Vorteil ist ja, daß solche Änderungsvorschläge zeigen, wie einfach es für den ein oder anderen sein kann, die Requester nach seinem Gusto aufzupeppen :D

Insgesamt scheint das Thema aber wenige zu interessieren - ehrlich gesagt hatte ich auf einige Frembeiträge gehofft, die meine "Pseudo-Kreativität" IMHO mit Leichtigkeit toppen könnten.

Verfasst: 24.03.2008 00:00
von Kaeru Gaman
nuja... das is ja eigentlich demo-progging...
vielleicht wirst du mehr aufmerksamkeit bekommen,
wenn du das als mini-demo deklarierst, anstatt als "about-requester"

Verfasst: 24.03.2008 01:11
von scholly
Na, dann bin ich ma gespannt :lol: :lol:

Verfasst: 24.03.2008 01:21
von Kaeru Gaman
ne, das bringt doch nix....

eher "Mini-Grafik-Demo als Aboutrequester"

...verstehest den unterschied in der herleitung?