"Matrix-Effekt" verbessern
Übersicht

![]() |
DATISBetreff: "Matrix-Effekt" verbessern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey Leute.
Habe heute ein Prog gecodet, das den Matrix-Effekt darstellen soll. Wenn man eine Eingabe macht und anschließend Enter drückt, wird der Text dann auch angezeigt. Aber wenn der Text zu lang ist, haut das ganz schön auf die Geschwindigkeit. Wie kann ich den Code optimieren, damit es schneller und besser läuft? Code: [AUSKLAPPEN] Graphics 1280,800,16,1
AppTitle "Matrix Script v2" SetBuffer BackBuffer() SeedRnd MilliSecs() font2=LoadFont("Courier New",18) font=LoadFont("Courier New",14) font3=LoadFont("Courier New",12) font4=LoadFont("Courier New",10) font5=LoadFont("Courier New",8) font6=LoadFont("Courier New",6) font7=LoadFont("Courier New",4) font8=LoadFont("Courier New",22) font9=LoadFont("Courier New",28) SetFont font2 matrix=300 hide#=0.03 Dim feld$(matrix,8) time=MilliSecs() start$="Reading the Matrix..." Color 0,255,0 For sub=0 To Len(start$) Cls Text 6,GraphicsHeight()-20,Left$(start$,sub) Flip Next For sub=255 To 0 Step -4 Cls Color 0,sub,0 Text 6,GraphicsHeight()-20,start$ Flip Next ;SetFont font2 SetBuffer BackBuffer() ;End Repeat Cls taste=GetKey() If taste>=32 And taste<=126 And Len(pw$)<80 Then pw$=pw$+Chr$(taste) If taste=8 Then pw$=Left$(pw$,Len(pw$)-1) Color 0,100,0 SetFont font Text 10,GraphicsHeight()-FontHeight(),pw$ If taste=13 Then For sh=1 To Len(pw$) Repeat wert=Rand(0,matrix) Until feld(wert,2)="" txt$="" For tmpTXT=1 To Rand(5,19) txt$=txt$+Chr$(Rand(48,126)) Next txt$=txt$+Mid$(pw$,sh,1) feld(wert,5)=txt$; Zufälliger String mit zufälliger Länge feld(wert,0)=GraphicsWidth()/2-(Len(pw$)/2-sh)*12; X-Pos feld(wert,1)=GraphicsHeight()/2-Len(txt$)*18; Y-Pos feld(wert,2)=MilliSecs(); Aktuelle Zeit (für Vernichtung) feld(wert,3)=Rand(-8,1); Länge des angezeigten Texts feld(wert,4)=MilliSecs(); Aktuelle Zeit (für Erweiterung) feld(wert,6)=1; Absoluter Farbwert (100%) feld(wert,7)=2; Font 2! feld(wert,8)=1; Alert? Next pw$="" EndIf If MilliSecs()-time>60 Then ;Stop time=MilliSecs() Repeat wert=Rand(0,matrix) Until feld(wert,2)="" feld(wert,0)=Rand(0,GraphicsWidth()); X-Pos feld(wert,1)=Rand(0,GraphicsHeight()); Y-Pos feld(wert,2)=MilliSecs(); Aktuelle Zeit (für Vernichtung) feld(wert,3)=1; Länge des angezeigten Texts feld(wert,4)=MilliSecs(); Aktuelle Zeit (für Erweiterung) txt$="" For tmpTXT=1 To Rand(5,20) txt$=txt$+Chr$(Rand(48,126)) Next feld(wert,5)=txt$; Zufälliger String mit zufälliger Länge feld(wert,6)=1; Absoluter Farbwert (100%) feld(wert,7)=Rand(1,13); Font? EndIf For j=0 To matrix If feld(j,0)>0 Then x=Int(feld(j,0)) y=Int(feld(j,1))-18 t=(MilliSecs()-Int(feld(j,2))) t2=(MilliSecs()-Int(feld(j,4))) staben=Int(feld(j,3)) If t2>50 Then If staben<Len(feld(j,5)) Then feld(j,3)=Int(feld(j,3))+1 : feld(j,4)=MilliSecs() EndIf anzahl#=Float(staben) absC#=Float(feld(j,6)) If staben>0 Then For k#=1 To anzahl# If k=Len(feld(j,5)) And absC>=0 Then absC=absC-hide feld(j,6)=absC EndIf If absC<0 Then absC=0 c=Abs(k#/(anzahl#*2))*absC*255. Color 0,c,0 If Int(feld(j,8))=1 Then Color 0,0,c If k=anzahl Then Color 0,255*absC,0 If Int(feld(j,8))=1 Then Color 0,0,255*absC EndIf fontTMP=Int(feld(j,7)) Select fontTMP Case 1 : SetFont font Case 2 : SetFont font2 Case 3 : SetFont font3 Case 4 : SetFont font4 Case 5 : SetFont font5 Case 6 : SetFont font6 Case 7 : SetFont font7 Case 8 : SetFont font8 Case 9 : SetFont font9 Case 10 : SetFont font6 Case 11 : SetFont font6 Case 12 : SetFont font6 Case 13 : SetFont font6 End Select far=FontHeight() If c>1 Then Text x,y+far*k,Mid$(feld(j,5),k,1),1,1 Else For leer=0 To 8 feld(j,leer)="" Next EndIf Next EndIf EndIf Next Flip Until KeyHit(1) End |
||
Frauen und Technik?
Männer und BHs? Beides möglich. |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oft abgefragte Werte wie in deinem Code GraphicsWidth / Height und Millisecs kannst du am Anfang der Hauptschleife in Variablen Zwischenspeichern.
Außerdem würde ich die Fonts in einem Array organisieren - macht die Sache nicht wirlich schneller aber einfacher für dich. mfG, Christoph. btw: Bitte DAS mal berücksichtigen. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Probier die SpeedText-DLL, dass sollte helfen. | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Text![]() ![]() ![]() |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group