Matrix - Effekt
Übersicht

BlitzBasic303Betreff: Matrix - Effekt |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Hier mal ein kleiner Matrix - Effekt. Ich weiß, sehr viele Variablen und ein wenig "komisch" programmiert aber denke das wichtigste ist das es funktioniert ![]() Code: [AUSKLAPPEN] Graphics 800,600,32,1 SetBuffer BackBuffer() SeedRnd(MilliSecs()) Color 0,255,0 Arial=loadfont("Arial",20,1,0,0) SetFont Arial Matrixfont=loadfont("Arial",30,1,0,0) SetFont Matrixfont Type Zahlen Field Nummer Field x Field y# Field Speed End type ;Matric Schriftzug Dim Buchstabe$(26) Buchstabe$(1)="a" Buchstabe$(2)="b" Buchstabe$(3)="c" Buchstabe$(4)="d" Buchstabe$(5)="e" Buchstabe$(6)="f" Buchstabe$(7)="g" Buchstabe$(8)="h" Buchstabe$(9)="i" Buchstabe$(10)="j" Buchstabe$(11)="k" Buchstabe$(12)="l" Buchstabe$(13)="m" Buchstabe$(14)="n" Buchstabe$(15)="o" Buchstabe$(16)="p" Buchstabe$(17)="q" Buchstabe$(18)="r" Buchstabe$(19)="s" Buchstabe$(20)="t" Buchstabe$(21)="u" Buchstabe$(22)="v" Buchstabe$(23)="w" Buchstabe$(24)="x" Buchstabe$(25)="y" Buchstabe$(26)="z" Machlos=1 ;------------------------------------------------- While Not KeyHit(1) If timerr < MilliSecs () Then Macheinzel = 1 timerr = MilliSecs () + 300 End If If timer < MilliSecs () Then Machneue = 1 timer = MilliSecs () + 1000 End If If Macheinzel=1 Then Zahl.Zahlen=new Zahlen Zahl\Nummer=Rnd(0,9) Zahl\Speed#=rnd(5,7) Zahl\x=rnd(0,780) Zahl\y#=rnd(-200,-20) macheinzel=0 End if If MachNeue=1 Then MachNeue=0 Laenge=rnd(1,10) x=rnd(0,780) y=rnd(-200,-100) Speed#=rnd(2,4) For Wielange=1 To Laenge Zahl.Zahlen=new Zahlen Zahl\Nummer=Rnd(0,9) Zahl\Speed#=Speed# Zahl\x=x Zahl\y#=y y=y+17 Next End If For Zahl.Zahlen=each Zahlen Text Zahl\x,Zahl\y#,Zahl\Nummer Zahl\y#=Zahl\y#+Zahl\Speed# If Zahl\y#>600 Then Delete Zahl.Zahlen Next ;Matrix Schriftzug - Kann in euer Wort verändert werden! If timerrr < MilliSecs () And Machlos=1 Then a=a+1 If a=13 And MachLos=1 Then MachM=1 If a=27 And MachM=1 Then MachA=1 If a=20 And MachA=1 Then MachT=1 If a=18 And MachT=1 Then MachR=1 If a=9 And MachR=1 Then MachI=1 If a=24 And MachI=1 Then MachX=1 If a>26 Then a=0 timerrr = MilliSecs () + 30 End If SetFont Matrixfont If MachM=1 Then Text Graphicswidth()-400-STRINGWIDTH("M")/2-40,300,"M" If MachM=0 Then Text Graphicswidth()-400-STRINGWIDTH("M")/2-40,300,UPPER(Buchstabe$(rnd(1,26))) If MachA=1 Then Text Graphicswidth()-400-STRINGWIDTH("M")/2-20,300,"A" If MachA=0 And MachM=1 Then Text Graphicswidth()-400-STRINGWIDTH("M")/2-20,300,UPPER(Buchstabe$(rnd(1,26))) If MachT=1 Then Text Graphicswidth()-400-STRINGWIDTH("M")/2,300,"T" If MachT=0 And MachA=1 Then Text Graphicswidth()-400-STRINGWIDTH("M")/2,300,UPPER(Buchstabe$(rnd(1,26))) If MachR=1 Then Text Graphicswidth()-400-STRINGWIDTH("M")/2+20,300,"R" If MachR=0 And MachT=1 Then Text Graphicswidth()-400-STRINGWIDTH("M")/2+20,300,UPPER(Buchstabe$(rnd(1,26))) If MachI=1 Then Text Graphicswidth()-400-STRINGWIDTH("M")/2+40,300,"I" If MachI=0 And MachR=1 Then Text Graphicswidth()-400-STRINGWIDTH("M")/2+40,300,UPPER(Buchstabe$(rnd(1,26))) If MachX=1 Then Text Graphicswidth()-400-STRINGWIDTH("M")/2+50,300,"X" If MachX=0 And MachI=1 Then Text Graphicswidth()-400-STRINGWIDTH("M")/2+50,300,UPPER(Buchstabe$(rnd(1,26))) If Machx=1 Then Machlos=0 If timerrrr < MilliSecs () Then Zaehlen=Zaehlen+1 If Zaehlen>5 Then MachM=0 MachA=0 MachT=0 MachR=0 MachI=0 MachX=0 Machlos=1 Zaehlen=0 End if timerrrr = MilliSecs () + 1000 End If End if SetFont Arial ;----------------------------------------------------------------- Flip Cls Wend End Wie gesagt, kann sein das das einfacher geht aber so funktionierts auch... Mfg BlitzBasic303 |
||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
ehm...da gibts aber mehr als das alphabet ... nimm einfach alle ascii-zeichen nach 48 oder so...
edit: zeigt er auch etwas an?? unter meinem b3d funktioniert das irgendwie nicht! 2. edit: nach "bisschen" einsicht in den code:: was soll der bringen?? 3. edit: nach paar kopfschütteleien: .........was BRINGT DIESER ***** CODE????? |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die meisten der "Matrix-Buchstaben" sind keine lateinischen Buchstaben sondern japanische Kanji-Zeichen. Das Kanji-Alphabet ist eine Art moderniesierte japanische Schrift, die mit weit weniger Zeichen auskommt, als das traditionelle Japanisch. Erkennt man daran, daß die Zeichen eher kantig aussehen.
Such mit Google mal nach einem "Kanji Font". Das kommt dem ziemlich nahe. |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
![]() |
Justus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier, sollte sie noch jemand brauchen...
Free MATRIX Fonts |
||
![]() |
Lord_Vader |
![]() Antworten mit Zitat ![]() |
---|---|---|
Lol is aber nicht viel los in der Matrix. | ||
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie die "welt" wohl grad aussieht^^ | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
Blood Brother |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab vor 4 Jahren auch mal ne kleine Matrix Demo geschrieben. Kam damals sogar richtig gut an hier ![]() Naja, hab mich heut mal hingesetzt und ne optimierte Fassung geschrieben (auf meinem Rechner von ~30 FPS auf ~50-60FPS !). Hier isse: Code: [AUSKLAPPEN] Graphics 640,480 SetBuffer BackBuffer() SeedRnd MilliSecs() Type TMatrix Field x%,y# Field speed#,length% Field steps% End Type Const MAX=30 ; Maximale Anzahl der "Code-Ketten" festlegen Const MINLENGTH=20 ; Minimale Länge der "Code-Ketten" festlegen Const MAXLENGTH=50 ; Maximale Länge der "Code-Ketten" festlegen Const MINSPEED=7 ; Minimale Geschwindigkeit der "Code-Ketten" festlegen Const MAXSPEED=17 ; Maximale Geschwindigkeit der "Code-Ketten" festlegen Global matrix_count=0 Global fps,fps1,fpstimer Global DeltaT#,T# While Not KeyHit(1)=1 Cls If T=0 Then T=MilliSecs() DeltaT=(MilliSecs()-T)/1000 T=MilliSecs() If MilliSecs()-fpstimer>1000 Then fps1=fps fps=0 fpstimer=MilliSecs() Else fps=fps+1 End If Matrix() Color 255,0,0 Text 5,5,"FPS: "+fps1 Color 255,255,255 Flip Wend Function Matrix() If matrix_count<=MAX Then neu.TMatrix=New TMatrix neu\y#=0 neu\x%=Rand(0,64)*10 neu\speed#=Rand(MINSPEED,MAXSPEED) neu\length%=Rand(MINLENGTH,MAXLENGTH) neu\steps%=255/neu\length% matrix_count=matrix_count+1 End If For mat.TMatrix=Each TMatrix For i = 0 To mat\length% Select i Case 0: Color 255,255,255 Default: Color 0,255-(i*mat\steps%),0 End Select y = mat\y#-(i*10) If y>=0 And y<480 Then Text mat\x%,y,Chr$(Rand(30,200)) mat\y#=mat\y#+(mat\speed# * DeltaT#) Next If (mat\y#-(mat\length% * 10))>480 Then Delete mat matrix_count=matrix_count-1 End If Next End Function Gruß Blood Brother |
||
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So hier mal mein Beitrag dazu.
Da ich gerade an einem Screensaver im Matrix-Stil arbeite, wollte ich mal kurz eine kleine Demo posten. (Wer Lust hat, kann ja mal genauer hinschauen und die versteckten Botschaften raussuchen) Einmal ein Screen: Und einmal die Demo (Escape beendet diese) http://www.eastwestgames.de/file.php?id=120 Das ganze ist übrigens in Blitzmax programmiert |
||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
![]() |
jungle |
![]() Antworten mit Zitat ![]() |
---|---|---|
@klepto2:
läuft bei mir nicht..... der bildschirm schaltet auf eine andere resolution (black) und dann klack wieder auf meine 1280x1024 und nix winxp sp2 1024mb ram athlon xp 2700+ jGL |
||
In der Realität ist die Wirklichkeit ganz anders.
| P3 550Mhz | P90Mhz | AMD 1Ghz | XP 2600@3200Mhz l P2 400Mhz | Dual XP 2000Mhz | |
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Liegt wohl an deiner Auflösung, bzw. deinem Monitor.
Ich werde gleich noch eine Demo mit neuem Effekt und Resolution Chooser uppen. [Edit] So, wie versprochen die neue Demo mit ResChooser: http://www.eastwestgames.de/file.php?id=124 |
||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Yeah! Cool!
Habe schon die geheimen Bodschaften entdeckt, allerdings tauscht bei mir die ganz große botschaft nur unter einer 1280x960 auflösung auf ![]() Würde es dann gerne als Bildschirmschoner nehmen ![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke.
Die Schrift muss ich noch an die jeweilige Auflösung anpassen, ist aber schon so gut wie erledigt. |
||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
"Follow the white rabbit"
"Knock knock" "The matrix has you" Sieht sehr gut aus. |
||
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
und:
"Blue or Red" ^^ sieht wirklich geil aus! |
||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab das ganze nochmal neu gemacht, da mir einiges noch nicht gefallen hat.
Hab das ganze jetzt in den WIP Thread gesteckt. https://www.blitzforum.de/view...404#175404 |
||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics 1024,768,32,1 Const minlenght=10,maxlenght=100,maxchar=1000 Dim matrix(80,60,1) Type letter Field x# Field y# Field typ Field clor Field speed# End Type SetBuffer BackBuffer() For x=0 To 8 newletter(x,0,Rand(48,255)) Next While Not KeyDown(1) counter=0 For l.letter=Each letter If Float(l\y Mod 14)=0 And l\y=>0 Then matrix(l\x/14,l\y/14,0)=l\typ matrix(l\x/14,l\y/14,1)=60 EndIf l\typ=Rand(48,255) l\y=l\y+l\speed Color 0,l\clor,0 Text l\x,l\y,Chr(l\typ) If l\y>768 Then Delete l counter=counter+1 Next For x=0 To 80 For y=0 To 60 If matrix(x,y,0)>0 Then Color 0,matrix(x,y,1),0 Text x*14,y*14,Chr(matrix(x,y,0)) matrix(x,y,1)=matrix(x,y,1)-Rnd(-1,2) If matrix(x,y,1)<=0 Then matrix(x,y,0)=0 EndIf Next Next If counter<maxchar Then newletter(Rand(80),0,Rand(48,255)) EndIf Flip Cls Wend End Function newletter(x,y,char) letter.letter=New letter letter\typ=char letter\y=y*14 letter\x=x*14 letter\clor=Rand(100,255) ra=Rand(2) If ra=3 Then letter\speed=.875 If ra=1 Then letter\speed=1.75 If ra=2 Then letter\speed=3.5 If ra=3 Then letter\speed=7 End Function ... mein Beitrag dazu...^^ jaja ich weiss di zeichen fließen langsam... aber irgendwer musste ja mal zeigen wie das aussieht wenn die in der Matrix zeitlupe haben ![]() P.S. : Bestimmt noch sehr verbesserungswürdig wollt nur sowas schon immer mal gerne machen und heute hatte ich sonst nichts zutun ![]() |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab den ersten Code mal ein bisschen verändert und da kam das hier raus:
Code: [AUSKLAPPEN] Graphics 800,600,32,3
SetBuffer BackBuffer() SeedRnd(MilliSecs()) Color 0,255,0 Arial=LoadFont("Arial",20,1,0,0) SetFont Arial Matrixfont=LoadFont("Arial",30,1,0,0) SetFont Matrixfont Type Zahlen Field Nummer Field x Field y# Field Speed End Type ;Matric Schriftzug Dim Buchstabe$(26) Buchstabe$(1)="a" Buchstabe$(2)="b" Buchstabe$(3)="c" Buchstabe$(4)="d" Buchstabe$(5)="e" Buchstabe$(6)="f" Buchstabe$(7)="g" Buchstabe$(8)="h" Buchstabe$(9)="i" Buchstabe$(10)="j" Buchstabe$(11)="k" Buchstabe$(12)="l" Buchstabe$(13)="m" Buchstabe$(14)="n" Buchstabe$(15)="o" Buchstabe$(16)="p" Buchstabe$(17)="q" Buchstabe$(18)="r" Buchstabe$(19)="s" Buchstabe$(20)="t" Buchstabe$(21)="u" Buchstabe$(22)="v" Buchstabe$(23)="w" Buchstabe$(24)="x" Buchstabe$(25)="y" Buchstabe$(26)="z" Machlos=1 ;------------------------------------------------- While Not KeyHit(1) If timerr < MilliSecs () Then Macheinzel = 1 timerr = MilliSecs () + 300 End If If timer < MilliSecs () Then Machneue = 1 timer = MilliSecs () + 1000 End If If Macheinzel=1 Then Zahl.Zahlen=New Zahlen Zahl\Nummer=Rnd(0,9) Zahl\Speed#=Rnd(5,7) Zahl\x=Rnd(0,780) Zahl\y#=Rnd(-200,-20) macheinzel=0 End If If MachNeue=1 Then MachNeue=0 Laenge=Rnd(1,10) x=Rnd(0,780) y=Rnd(-200,-100) Speed#=Rnd(2,4) For Wielange=1 To Laenge Zahl.Zahlen=New Zahlen Zahl\Nummer=Rnd(0,9) Zahl\Speed#=Speed# Zahl\x=x Zahl\y#=y y=y+17 Next End If For Zahl.Zahlen=Each Zahlen Text Zahl\x,Zahl\y#,Zahl\Nummer Zahl\y#=Zahl\y#+Zahl\Speed# If Zahl\y#>600 Then Delete Zahl.Zahlen Next ;Matrix Schriftzug - Kann in euer Wort verändert werden! If timerrr < MilliSecs () And Machlos=1 Then a=a+1 If a=6 And MachLos=1 Then MachF=1 If a=9 And MachF=1 Then MachI=1 If a=3 And MachI=1 Then MachC=1 If a=11 And MachC=1 Then MachK=1 If a=5 And MachK=1 Then MachE=1 If a=14 And MachE=1 Then MachN=1 If a=26 And MachN=1 Then MachNa=1 If a>26 Then a=0 timerrr = MilliSecs () + 30 End If SetFont Matrixfont If MachF=1 Then Text GraphicsWidth()-400-StringWidth("M")/2-40,300,"S" If MachF=0 Then Text GraphicsWidth()-400-StringWidth("M")/2-40,300,Upper(Buchstabe$(Rnd(1,26))) If MachI=1 Then Text GraphicsWidth()-400-StringWidth("I")/2-30,300,"C" If MachI=0 And MachF=1 Then Text GraphicsWidth()-400-StringWidth("M")/2-20,300,Upper(Buchstabe$(Rnd(1,26))) If MachC=1 Then Text GraphicsWidth()-400-StringWidth("M")/2,300,"H" If MachC=0 And MachI=1 Then Text GraphicsWidth()-400-StringWidth("M")/2,300,Upper(Buchstabe$(Rnd(1,26))) If MachK=1 Then Text GraphicsWidth()-400-StringWidth("M")/2+20,300,"E" If MachK=0 And MachC=1 Then Text GraphicsWidth()-400-StringWidth("M")/2+20,300,Upper(Buchstabe$(Rnd(1,26))) If MachE=1 Then Text GraphicsWidth()-400-StringWidth("M")/2+45,300,"I" If MachE=0 And MachK=1 Then Text GraphicsWidth()-400-StringWidth("M")/2+40,300,Upper(Buchstabe$(Rnd(1,26))) If MachN=1 Then Text GraphicsWidth()-400-StringWidth("M")/2+60,300,"ß" If MachN=0 And MachE=1 Then Text GraphicsWidth()-400-StringWidth("M")/2+60,300,Upper(Buchstabe$(Rnd(1,26))) If MachNa=1 Then Text GraphicsWidth()-400-StringWidth("M")/2+80,300,"E" If MachNa=0 And MachN=1 Then Text GraphicsWidth()-400-StringWidth("M")/2+80,300,Upper(Buchstabe$(Rnd(1,26))) If MachNa=1 Then Machlos=0 If timerrrr < MilliSecs () Then Zaehlen=Zaehlen+1 If Zaehlen>5 Then MachM=0 MachA=0 MachT=0 MachR=0 MachI=0 MachX=0 Machlos=1 Zaehlen=0 End If timerrrr = MilliSecs () + 1000 End If End If SetFont Arial ;----------------------------------------------------------------- Flip Cls Wend End |
||
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du findest dich aber ganz schön komisch oder?
EDIT: @Alle, die's nicht checken Lest euch mal seine MachF-MachN-Variablen durch...(Und dann noch die "Botschaft" in der Mitte des Bildschirms) Ich glaub der hat nicht mehr alle tassen im Schrank. ![]() Achja, du hast nen Fehler mit einprogramiert, den zu suchen ich dir überlasse.. |
||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zu den beitrag von StepTiger muss ich wohl keinen kommentar schreiben ![]() Aber mal btt: @Threatstarter die Idee ist net schlecht, aber der Code schlecht Optimiert. Als Programmierer muss man sich immer neue Herausforderungen suchen, nur so wird man wirklich gut ![]() Versuch doch mal den Code so umzuschreiben, dass du eine Funktion hast, womit jeder beliebiger Text in dieser Matrixform ausgegeben werden kann. (z.b. Matrixtext(text$,x,y) ) |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group