VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "lazyPlane" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = False Public altitude As Integer Public direction As DirecTypes Public x As Integer Public y As Integer Public moving As Boolean Private speedVal As Integer 'how many units to move each time Public Enum DirecTypes NORTHWEST = 0 NORTH = 1 NORTHEAST = 2 EAST = 3 SOUTHEAST = 4 SOUTH = 5 SOUTHWEST = 6 WEST = 7 End Enum Public Sub turnRight() Me.direction = Me.direction + 1 If Me.direction > 7 Then Me.direction = 0 End If End Sub Public Sub turnLeft() Me.direction = Me.direction - 1 If Me.direction < 0 Then Me.direction = 7 End If End Sub Public Sub land() If Me.altitude > 5 Then MsgBox "you are too high to land" Else Me.moving = False Me.altitude = 0 End If End Sub Public Sub takeOff() Me.moving = True Me.altitude = 5 End Sub Public Sub move() 'analyzes direction, generates new values for x and y If (Me.moving = True) Then Select Case Me.direction Case NORTH Me.x = Me.x + 0 Me.y = Me.y + speedVal Case NORTHEAST Me.x = Me.x + speedVal Me.y = Me.y + speedVal Case EAST Me.x = Me.x + speedVal Me.y = Me.y + 0 Case SOUTHEAST Me.x = Me.x + speedVal Me.y = Me.y - speedVal Case SOUTH Me.x = Me.x + 0 Me.y = Me.y - speedVal Case SOUTHWEST Me.x = Me.x - speedVal Me.y = Me.y - speedVal Case WEST Me.x = Me.x - speedVal Me.y = Me.y + 0 Case NORTHWEST Me.x = Me.x - speedVal Me.y = Me.y + speedVal End Select End If End Sub