PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [VB .NET] Matrix effect



Kaspersky
31.05.2009, 16:42
http://i39.tinypic.com/2l97hh4.jpg

Mit diesem code kann man per consolenanwendung einen schönen matrix effect erstellen.

Imports System
Module Module1

Sub Main(ByVal args As String())
Console.Title = "tH3 M7tr1x 3ff3<t"
Console.ForegroundColor = ConsoleColor.DarkGreen
Console.WindowLeft = InlineAssignHelper(Console.WindowTop, 0)
Console.WindowHeight = InlineAssignHelper(Console.BufferHeight, Console.LargestWindowHeight)
Console.WindowWidth = InlineAssignHelper(Console.BufferWidth, Console.LargestWindowWidth)
#If readkey Then
Console.WriteLine("H1T 7NY K3Y T0 C0NT1NU3 =/")
Console.ReadKey()
#End If
Console.CursorVisible = False
Dim width As Integer, height As Integer
Dim y As Integer()
Dim l As Integer()
Initialize(width, height, y, l)
Dim ms As Integer
While True
Dim t1 As DateTime = DateTime.Now
MatrixStep(width, height, y, l)
ms = 10 - CInt(DirectCast((DateTime.Now - t1), TimeSpan).TotalMilliseconds)
If ms > 0 Then
System.Threading.Thread.Sleep(ms)
End If
If Console.KeyAvailable Then
If Console.ReadKey().Key = ConsoleKey.F5 Then
Initialize(width, height, y, l)
End If
End If
End While
End Sub

Dim thistime As Boolean = False

Sub MatrixStep(ByVal width As Integer, ByVal height As Integer, ByVal y As Integer(), ByVal l As Integer())
Dim x As Integer
thistime = Not thistime
For x = 0 To width - 1
If x Mod 11 = 10 Then
If Not thistime Then
Continue For
End If
Console.ForegroundColor = ConsoleColor.White
Else
Console.ForegroundColor = ConsoleColor.DarkGreen
Console.SetCursorPosition(x, inBoxY(CInt(y(x) - 2 - (l(x) / 40 * 2)), height))
Console.Write(R)
Console.ForegroundColor = ConsoleColor.Green
End If
Console.SetCursorPosition(x, y(x))
Console.Write(R)
y(x) = inBoxY(y(x) + 1, height)
Console.SetCursorPosition(x, inBoxY(y(x) - l(x), height))
Console.Write(" "c)
Next
End Sub

Private Sub Initialize(ByRef width As Integer, ByRef height As Integer, ByRef y As Integer(), ByRef l As Integer())
Dim h1 As Integer
Dim h2 As Integer = CInt((InlineAssignHelper(h1, CInt((InlineAssignHelper(height, Console.WindowHeight)) / 2))) / 2)
width = Console.WindowWidth - 1
y = New Integer(width - 1) {}
l = New Integer(width - 1) {}
Dim x As Integer
Console.Clear()
For x = 0 To width - 1
y(x) = m_r.[Next](height)
l(x) = m_r.[Next](h2 * (If((x Mod 11 <> 10), 2, 1)), h1 * (If((x Mod 11 <> 10), 2, 1)))
Next
End Sub

Dim m_r As New Random()

Private ReadOnly Property R() As Char
Get
Dim t As Integer = m_r.[Next](10)
If t <= 2 Then
Return CChar(("0"c & m_r.[Next](10)))
ElseIf t <= 4 Then
Return CChar(("a"c & m_r.[Next](27)))
ElseIf t <= 6 Then
Return CChar(("A"c & m_r.[Next](27)))
Else
Return CChar(CChar(CStr((m_r.[Next](32, 255)))))
End If
End Get
End Property

Public Function inBoxY(ByVal n As Integer, ByVal height As Integer) As Integer
n = n Mod height
If n < 0 Then
Return n + height
Else
Return n
End If
End Function

Private Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T
target = value
Return value
End Function

End Module

Sample (http://www.files.to/get/716747/qu2duzz49f)

blackcat
31.05.2009, 16:43
Das soll für was gut sein?

Kaspersky
31.05.2009, 16:44
sieht cool aus :)

VooDoo666
31.05.2009, 17:07
@Lion,
das soll schön aussehen und manchen Leuten(hust) das Gefühl geben, ein richter 1337 leet RoxOXxoR zu sein!

Edit: Das war nun natürlich nicht auf dich bezogen!

2.Edit: Zum Code: Funktioniert wunderbar.

Grim-Reaper
31.05.2009, 17:09
Ja toll! Und jetzt?

Kaspersky
31.05.2009, 17:20
Was seid ihr den alles für negativ nasen? :rolleyes:

Grim-Reaper
31.05.2009, 17:22
Was seid ihr den alles für negativ nasen? :rolleyes:

Vllt. Liegts an deinen unnötigen Programmen, die du tausendmal postest -.-

br00_pwn
31.05.2009, 17:22
hehe ich finds ganz funy, und gebrauchen kann man einiges was hier gepostet wird nicht , daher :)

Kaspersky
31.05.2009, 17:35
Vllt. Liegts an deinen unnötigen Programmen, die du tausendmal postest -.-

Ist doch gar kein programm, ist eine source =)

VooDoo666
31.05.2009, 18:08
Vllt. Liegts an deinen unnötigen Programmen, die du tausendmal postest -.-
Oh man-.-....

Er postet nen SourceCode. Hast du vielleicht mal daran gedacht, das manche mit diesem Code auch lernen und verstehen, wie man so etwas macht? Vielleicht will er seine Arbeit hier einfach präsentieren?

Du verstehst den Sinn davon wohl nicht!

Inj3ct
27.06.2009, 08:29
Sieht klasse aus und auserdem ist es nicht nutzlos sowas könnte man als Load Picture oder so einfügen also bevor das programm startet damit man das sieht ^^



MFG
Inj3ct

Trinity
27.06.2009, 08:56
Regt euch doch nich auf...ich finds auch ganz ok...also mir würden auch ein paar Situationen einfallen wo man das benutzen könnte...naja :D

MYNEWFAKED
27.06.2009, 09:15
und auch wenn es nicht nutzbar für euch erschneint lass ihn doch sein stuff vorstellen

also ich finds nice

Edapeda
27.06.2009, 09:28
kann ich das auch mit dem editor mchen?? und wenn ja mit was abspeichern?

VeXx
27.06.2009, 10:21
oO
Naja, du kannst es im Editor bearbeiten und dann als VisualBasicProject (vbproj)speichern, aber das macht keinen Sinn für dich. Das ist dann auch nur der Source, bei dem ein paar Dateien fehlen. Wenn du das Programm haben willst, dann musst du es schon compilen.

Kaspersky
27.06.2009, 11:07
Hab mal ein sample (http://www.files.to/get/716747/qu2duzz49f) hochgeladen, kannst dir ja mal anschauen.

Edapeda
27.06.2009, 11:38
nice ^^ hab es garde auch hinbekommen

Sarge_stoni
05.07.2009, 14:40
also ich bin die aufjedenfall Dankbar dafür ;)

=[
07.03.2010, 17:25
Wie kriegt man das hin das das in einer Form geöffnet wird bzw erst der Matrix effect dann die Form