Visual Basic 2012 Excel 2013 Bildschirmschoner Animation
programmieren von Selzer-McKenzie SelMcKenzie
Video: http://youtu.be/BoBdV6qsvBM
Author D.Selzer-McKenzie
Heute zeige ich Ihnen, wie Sie mit Visual Basic
2005,2008,2010 oder 2012 und mit Excel eine interessante Animation, bewegende
Bilder auf dem Bildschirm, auch als Bildschirmschoner geeignet, programmieren
können.
Nachstehend nun der komplette Source-Code:
Const FigurenGrösse As Integer = 300
Dim PositionX,
PositionY As Integer
Dim AltePositionX,
AltePositionY As Integer
Dim
BewegungsVektorX, BewegungsVektorY As Integer
Dim DrehungsWinkel
As Integer
Dim
DrehGeschwindigkeit As Integer
Dim Hintergrund As
Brush
Private Sub
BildschirmschonerFormInitialisierung_Load(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles MyBase.Load
Dim random As
New Random()
Me.MinimumSize
= New Size(FigurenGrösse * 2, FigurenGrösse * 2)
Me.SetStyle(ControlStyles.DoubleBuffer Or _
ControlStyles.UserPaint Or _
ControlStyles.AllPaintingInWmPaint Or _
ControlStyles.ResizeRedraw Or _
ControlStyles.Opaque, True)
BewegungsVektorX = 3 + random.Next(5)
BewegungsVektorY = 3 + random.Next(5)
DrehGeschwindigkeit = 3 + random.Next(5)
PositionX =
CInt((Me.ClientSize.Width - FigurenGrösse - 1) * random.NextDouble)
PositionY =
CInt((Me.ClientSize.Height - FigurenGrösse - 1) * random.NextDouble)
End Sub
Private Sub
BildschirmschonerFormInitialisierung_Resize(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Resize
If Not
IsNothing(Hintergrund) Then Hintergrund.Dispose()
Hintergrund =
New TextureBrush(New Bitmap(BildTextur.Image))
End Sub
Private Sub
BildschirmschonerForm1_Paint(ByVal sender As Object, ByVal e As
System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
Dim Zeichnen
As Graphics = e.Graphics
Dim Füllung As
Brush
Füllung = New
TextureBrush(New Bitmap(BildKessel.Image))
If
IsNothing(Hintergrund) Then BildschirmschonerFormInitialisierung_Resize(Nothing,
Nothing)
Zeichnen.FillRectangle(Hintergrund, 0, 0, Me.ClientSize.Width,
Me.ClientSize.Height)
Zeichnen.FillPie(Füllung, PositionX, PositionY, FigurenGrösse,
FigurenGrösse, DrehungsWinkel, 300)
End Sub
Private Sub
TimerSteuerelement_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TimerSteuerelement.Tick
Dim rect As
Rectangle
Dim w, h As
Integer
w =
Me.ClientSize.Width - FigurenGrösse
h = Me.ClientSize.Height
- FigurenGrösse
DrehungsWinkel
= (DrehungsWinkel + DrehGeschwindigkeit) Mod 360
PositionX +=
BewegungsVektorX
If PositionX
< 0 Then
PositionX
= 0
BewegungsVektorX *= -1
ElseIf
PositionX > w Then
PositionX
= w
BewegungsVektorX *= -1
End If
PositionY +=
BewegungsVektorY
If PositionY
< 0 Then
PositionY
= 0
BewegungsVektorY *= -1
ElseIf
PositionY > h Then
PositionY = h
BewegungsVektorY *= -1
End If
rect =
Rectangle.Union( _
New
Rectangle(PositionX - 1, PositionY - 1, FigurenGrösse + 2, FigurenGrösse + 2),
_
New
Rectangle(AltePositionX - 1, AltePositionY - 1, FigurenGrösse + 2,
FigurenGrösse + 2))
Me.Invalidate(rect)
AltePositionX
= PositionX
AltePositionY
= PositionY
End Sub
End Class
Keine Kommentare:
Kommentar veröffentlichen
Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.