Drehender NewsTicker für B2D

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Holzchopf

Meisterpacker

Betreff: Drehender NewsTicker für B2D

BeitragSa, Apr 10, 2004 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Man kennt sie ja schon aus verschiedenen futuristischen Spielen und Filmen - diese Newsticker die so schön um einen Turm drehen.
Ich hab nun mal ein wenig mit DrawImageRect rumgespielt (und mit ein paar anderen Befehlen) und dabei ist halt das rausgekommen:

Code: [AUSKLAPPEN]

Graphics 800,600,0,2

SeedRnd MilliSecs()

; Bild laden / erstellen:

bild = CreateImage( 800, 150 )

; Bild bemalen (Auskommentieren, falls Bild geladen wird):
;[sub]
   SetBuffer ImageBuffer( bild )
   
   SetFont LoadFont( "Tahoma", 50, 1 )

   Color 0,0,255
   Text 200,0, "*** Hallo Welt ***" ,1

   Color 255,0,0
   Text 600,0, "*** Hallo Welt ***" ,1

   Color 0,255,0
   Line 0,50, 800,75
   Line 0,75, 800,100

   For y=100 To 149
      For x=0 To 799
         Color Rand(255), Rand(255), Rand(255)
         Plot x,y
      Next
   Next

   SetBuffer BackBuffer()
;[/sub]


w# = 800

ClsColor 78, 100, 128

While Not KeyHit(1)

   Cls

   my = MouseY()

   zeichne_x# = 500
   For x=0 To 799

      ; Wird benötigt, um die "Spalten"-Breite zu ermitteln:
      alt_zx# = zeichne_x

      ; Die zu zeichnende Position im Kreis ermitteln:
      winkel# = ( x/800.0 * 360.0 )
      zeichne_x = 400+ Cos( winkel ) * 100
      zeichne_y = 200- Sin( winkel ) * ( (my-300) / 10.0)

      ; Ermittelt die Spaltenbreite, da sie grösser sein kann als 1,
      ; muss an einigen Stellen ein 2 Pixel breiter Streifen gemalt
      ; werden, da sie aber auch (gerundet) 0 sein kann und dann
      ; gar nichts kopiert werden würde,sein kann, muss sie
      ; mindestens 1 betragen (siehe Rechnung 2te Zeile):
      breite = Abs(alt_zx - zeichne_x)
      breite = breite + 1*(breite=0)

      ; Bestimmt die X-Position im Bild, welche kopiert werden soll:
      rect_x = (x+w) Mod 800
      
      DrawImageRect bild, zeichne_x, zeichne_y, rect_x, 0, breite, 150
      
   Next

   ; Drehgeschwindigkeit:
   w = w + 2

   Flip

Wend

End


MfG
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group