|
Imports winSpriteLib
Public Class TestEngineSprite
Inherits winSprite
#Region " Private Types "
Private Enum eFrames As Integer
kUpOne
kUpTwo
kUpThree
kRightOne
kRightTwo
kRightThree
kDownOne
kDownTwo
kDownThree
kLeftOne
kLeftTwo
kLeftThree
End Enum
#End Region
#Region " Public Types "
Public Enum eAnimationType
kUp
kRight
kDown
kLeft
End Enum
#End Region
#Region " Variables "
Private m_Mode As eAnimationType
#End Region
#Region " Constructor "
Public Sub New()
MyBase.New("rm17.bmp", 24, 32, Color.FromArgb(255, 1, 0, 0), winFrameHandler.eFrameDirections.kRightDown, New winChipRange(6, 0, 3, 4))
MyBase.IsMovable = True
End Sub
#End Region
#Region " Overrides "
Public Overrides Sub HandleKeyPress(ByVal theKey As winKeyboardAPI.eKeys, ByVal isDown As Boolean)
Select Case theKey
Case winKeyboardAPI.eKeys.kEscape
If isDown Then modLoad.EndGame()
Case winKeyboardAPI.eKeys.kUpArrow
SetMode(eAnimationType.kUp)
If isDown Then
Me.MoveDelta = New Point(0, -Me.RecomendedSpeed)
Else
Me.MoveDelta = Point.Empty
End If
Case winKeyboardAPI.eKeys.kRightArrow
SetMode(eAnimationType.kRight)
If isDown Then
Me.MoveDelta = New Point(Me.RecomendedSpeed, 0)
Else
Me.MoveDelta = Point.Empty
End If
Case winKeyboardAPI.eKeys.kDownArrow
SetMode(eAnimationType.kDown)
If isDown Then
Me.MoveDelta = New Point(0, Me.RecomendedSpeed)
Else
Me.MoveDelta = Point.Empty
End If
Case winKeyboardAPI.eKeys.kLeftArrow
SetMode(eAnimationType.kLeft)
If isDown Then
Me.MoveDelta = New Point(-Me.RecomendedSpeed, 0)
Else
Me.MoveDelta = Point.Empty
End If
End Select
End Sub
Public Overrides Sub Move()
If Not Me.MoveDelta.Equals(Point.Empty) Then AdvanceFrame()
MyBase.Move()
End Sub
#End Region
#Region " Subs "
Private Sub SetMode(ByVal theMode As eAnimationType)
If m_Mode = theMode Then Exit Sub
m_Mode = theMode
Select Case theMode
Case eAnimationType.kDown
MyBase.CurFrame = eFrames.kDownOne
Case eAnimationType.kLeft
MyBase.CurFrame = eFrames.kLeftOne
Case eAnimationType.kRight
MyBase.CurFrame = eFrames.kRightOne
Case eAnimationType.kUp
MyBase.CurFrame = eFrames.kUpOne
End Select
End Sub
Private Sub AdvanceFrame()
Select Case m_Mode
Case eAnimationType.kDown
Select Case CType(MyBase.CurFrame, eFrames)
Case eFrames.kDownOne
MyBase.CurFrame = eFrames.kDownTwo
Case eFrames.kDownTwo
MyBase.CurFrame = eFrames.kDownThree
Case eFrames.kDownThree
MyBase.CurFrame = eFrames.kDownOne
Case Else
MyBase.CurFrame = eFrames.kDownOne
End Select
Case eAnimationType.kLeft
Select Case CType(MyBase.CurFrame, eFrames)
Case eFrames.kLeftOne
MyBase.CurFrame = eFrames.kLeftTwo
Case eFrames.kLeftTwo
MyBase.CurFrame = eFrames.kLeftThree
Case eFrames.kLeftThree
MyBase.CurFrame = eFrames.kLeftOne
Case Else
MyBase.CurFrame = eFrames.kLeftOne
End Select
Case eAnimationType.kRight
Select Case CType(MyBase.CurFrame, eFrames)
Case eFrames.kRightOne
MyBase.CurFrame = eFrames.kRightTwo
Case eFrames.kRightTwo
MyBase.CurFrame = eFrames.kRightThree
Case eFrames.kRightThree
MyBase.CurFrame = eFrames.kRightOne
Case Else
MyBase.CurFrame = eFrames.kRightOne
End Select
Case eAnimationType.kUp
Select Case CType(MyBase.CurFrame, eFrames)
Case eFrames.kUpOne
MyBase.CurFrame = eFrames.kUpTwo
Case eFrames.kUpTwo
MyBase.CurFrame = eFrames.kUpThree
Case eFrames.kUpThree
MyBase.CurFrame = eFrames.kUpOne
Case Else
MyBase.CurFrame = eFrames.kUpOne
End Select
End Select
End Sub
#End Region
End Class
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.