Text-Splittereffekt

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Kabelbinder

Sieger des WM-Contest 2006

Betreff: Text-Splittereffekt

BeitragMo, Jun 07, 2004 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hier ist ein Effekt, mit dem man ganz nette Splittererscheinungen erzeugen kann. Das ist nun auf Texte Spezialisiert, d.h. Man kann es z.B. ganz gut für einen Spiel-Abspann nehmen.

Zu den Konstanten:

-display: Anzahl der zu präsentierenden Zeichenketten, um mehr / weniger anzuzeigen verändern.
-Splitterfilter#: Welcher Anteil der Splitter soll übersprungen, also nicht gezeichnet werden? je größer der Wert, desto weniger Splitter-Partikel und desto schneller geht das dann auch.
-drift: Turbolenzen (Bewegung in x Richtung).
-warten: Verzögerung vor dem Splittern.


Also, viel Spaß.

BlitzBasic: [AUSKLAPPEN]
AppTitle "Splittern"
Graphics 640,480
SetBuffer BackBuffer()
SeedRnd MilliSecs()
out = LoadFont("Tahoma",28,1,0,0)
SetFont out

Const display = 12
Const Splitterfilter# = 3.0
Const drift = 3
Const warten = 1800

Global wert,multi,r,g,b,umfang

Dim Banner$(display)

For i = 1 To display
Read Banner$(i)
Next
Data "Da mir nichts eingefallen ist,","Was ich hier als Text nehmen könnte,"
Data "Nehme ich die sieben Hügel Roms als Text","(Bei Langeweile mit Esc Beenden)"
Data "1. 'Kapitol'","2. 'Palatin'"
Data "3. 'Aventin'","4. 'Caelius'"
Data "5. 'Esquilin'","6. 'Quirinal'"
Data "7. 'Viminal'","Seht ihr, das ist doch toll. :3)"

Dim Farbe(display,3)
For i = 1 To display
detail = Rand(1,6)

Select detail
Case 1
Farbe(i,1) = 255
Farbe(i,2) = 0
Farbe(i,3) = 0
Case 2
Farbe(i,1) = 0
Farbe(i,2) = 255
Farbe(i,3) = 0
Case 3
Farbe(i,1) = 0
Farbe(i,2) = 0
Farbe(i,3) = 255
Case 4
Farbe(i,1) = 255
Farbe(i,2) = 0
Farbe(i,3) = 255
Case 5
Farbe(i,1) = 255
Farbe(i,2) = 255
Farbe(i,3) = 0
Case 6
Farbe(i,1) = 255
Farbe(i,2) = 155
Farbe(i,3) = 0
End Select
Next

umfang = 2000*display
Dim Anzeige(umfang,6,display)

For n = 1 To display
Color Farbe(n,1),Farbe(n,2),Farbe(n,3)
Text 320,100,Banner$(n),1,1

For y = 70 To 120
For x = 50 To 590

wert = ReadPixel(x,y)
r = (wert And $FF0000) /$10000
g = (wert And $FF00) /$100
b = wert And $FF
If r+g+b > 0 Then
Anzeige(multi,1,n) = x
Anzeige(multi,2,n) = y
Anzeige(multi,3,n) = Rand(3,6)
Anzeige(multi,0,n) = Rand(drift-drift*2,drift) ;x
Anzeige(multi,4,n) = Farbe(n,1)
Anzeige(multi,5,n) = Farbe(n,2)
Anzeige(multi,6,n) = Farbe(n,3)
multi = multi + 1
EndIf

Next
Next

Cls
Next

n = 0
Repeat
n = n + 1
Cls
Color Farbe(n,1),Farbe(n,2),Farbe(n,3)
Text 320,100,Banner$(n),1,1
Flip
Delay warten
For t = 1 To 75
Cls
For i = 1 To multi Step Splitterfilter
Plot Anzeige(i,1,n),Anzeige(i,2,n)
Anzeige(i,2,n) = Anzeige(i,2,n) + Anzeige(i,3,n) + Rand(0,4)
Anzeige(i,1,n) = Anzeige(i,1,n) + Anzeige(i,0,n)
If Anzeige(i,4,n) > 5 Then Anzeige(i,4,n) = Anzeige(i,4,n) - Rand(1,5)
If Anzeige(i,5,n) > 5 Then Anzeige(i,5,n) = Anzeige(i,5,n) - Rand(1,5)
If Anzeige(i,6,n) > 5 Then Anzeige(i,6,n) = Anzeige(i,6,n) - Rand(1,5)

Color 0,0,0
Rect 0,0,1,200
Color Anzeige(i,4,n),Anzeige(i,5,n),Anzeige(i,6,n)
Next

Flip
Cls
Next

Until KeyHit(1) Or n >= display
End
<Wing Avenger Download> ◊◊◊ <Macrophage Download>
  • Zuletzt bearbeitet von Kabelbinder am Mo, Jun 07, 2004 16:55, insgesamt 2-mal bearbeitet
 

Blitzkrieg Bop

BeitragMo, Jun 07, 2004 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Also bei mir geht das nicht. Die erste Zeile wird angezeigt und dann nach ner Zeit
:
Arryay index... Sad
~ Hey Ho Let's Go ~

Kabelbinder

Sieger des WM-Contest 2006

BeitragMo, Jun 07, 2004 16:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab den Text nochmal überarbeitet und den Fehler gefunden Embarassed . Also wenn du den Quelltext oben nochmal nimmst, müsste es nun aber gehen. Very Happy
<Wing Avenger Download> ◊◊◊ <Macrophage Download>

Garfield

BeitragMo, Jun 07, 2004 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
irgendwie ging bei mir ESCAPE nicht, da ich einen 500 MHz. hier nur zum Testen hatte musste ich 10 minuten warten, da hätt ich den Rechner auch resetten können.

ansonsten schöner Effekt, ich hatte das auch schon mal mit Types gelöst, das war aber im "alten" Forum

Eine enorme Geschwindigkeitssteigerung erreicht du mit:

BlitzBasic: [AUSKLAPPEN]
For y = 70 To 120 Step 2
For x = 50 To 590 Step 4
BlitzPlus|BMax|BMax-GUI -- Sony VAIO Win7 * MacBookPro Sierra
 

Blitzkrieg Bop

BeitragMo, Jun 07, 2004 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, bin Garfields meinung, ganz netter Effekt, aber nach Druck der ESC Taste hat sich das Prog erst verzögert beendet!
~ Hey Ho Let's Go ~
 

Ensign Joe

BeitragMo, Jun 07, 2004 18:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir kommt ein schwarzer Bildschirm
 

Blitzkrieg Bop

BeitragMo, Jun 07, 2004 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
? ein bisschen abwarten und der Text erscheint!
~ Hey Ho Let's Go ~

Kabelbinder

Sieger des WM-Contest 2006

BeitragMo, Jun 07, 2004 19:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Also wenn man Esc drück, sollte der eigentlich nur noch das Wort zu Ende Splittern und dann beenden. Das heist er beendet nicht Augenblicklich, wenn man Esc drückt.
Und für schnellere Ausfürhrung gibst es ja die Konstante Splitterfilter#
<Wing Avenger Download> ◊◊◊ <Macrophage Download>
 

Kekskiller

BeitragMo, Jun 07, 2004 19:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hihi, sehr schick, mag ich.
Nur ein etwas unrechteckigen Slipt-Dust hätte ich
mir gewünscht, aber obwohl, wenn ich mal so
nachdenke liegt es wohl an der Form des Textes.
Egal, wrückgenommen, sieht sehr schick aus!

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group