minthet Wed Dec 10, 2008 11:06 am
Animated Dice
This is similar to the dice program except that I have added animation to the program. To add the animated effect, you need to include the timer control into your program. In the timer's properties windows, set the timer enabled to false and the interval to 10. You can change the interval to any number you want. Under the roll dice command, set the timer to enabled. You also need to create a subroutine and name it as roll. Under the roll subroutine, enter the codes that display the different faces of the dice. To create the animated effect, you need to declare a global variable x and assign an initial value of 0 to it, then include the statement x=x+10 so that the value of x increase 10 units after an interval of 10 milliseconds. Finally, type in the statement
If x < 1000 Then
roll
Else
Timer1.Enabled = False
End If
under the timer subroutine to stop the timer. When you click the button roll dice, you will see that faces of the dice will be changing and the come to a stop.
The Design Interface
The Run Time Interface
Dim x As Integer
Sub roll( )
x = x + 10
Randomize Timer
n = Int(1 + Rnd * 6)
For i = 0 To 6
Shape1(i).Visible = False
Next
If n = 1 Then
Shape1(3).Visible = True
Shape2.FillColor = &HC0C0C0
End If
If n = 2 Then
Shape1(2).Visible = True
Shape1(4).Visible = True
Shape2.FillColor = &H8080FF
End If
If n = 3 Then
Shape1(2).Visible = True
Shape1(3).Visible = True
Shape1(4).Visible = True
Shape2.FillColor = &H80FF&
End If
If n = 4 Then
Shape1(0).Visible = True
Shape1(2).Visible = True
Shape1(4).Visible = True
Shape1(6).Visible = True
Shape2.FillColor = &HFFFF00
End If
If n = 5 Then
Shape1(0).Visible = True
Shape1(2).Visible = True
Shape1(3).Visible = True
Shape1(4).Visible = True
Shape1(6).Visible = True
Shape2.FillColor = &HFFFF&
End If
If n = 6 Then
Shape1(0).Visible = True
Shape1(1).Visible = True
Shape1(2).Visible = True
Shape1(4).Visible = True
Shape1(5).Visible = True
Shape1(6).Visible = True
Shape2.FillColor = &HFF00FF
End If
End Sub
Private Sub Command1_Click()
Timer1.Enabled = True
x = 0
End Sub
Private Sub Timer1_Timer()
If x < 1000 Then
roll
Else
Timer1.Enabled = False
End If
End Sub