65.9K
CodeProject 正在变化。 阅读更多。
Home

时钟游戏

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.33/5 (7投票s)

2005年5月11日

2分钟阅读

viewsIcon

41021

downloadIcon

1885

创建带游戏的模拟时钟!!

Sample Image - clockgame.jpg

引言

对周围的一切数字设备感到沮丧和厌倦…… :) (我不是在开玩笑)。我想要一些“模拟”的东西……有什么比模拟手表更好的呢? 游戏是在我最终厌倦了盯着我的作品之后才出现的。

这里是代码……

首先,让我们从创建一个时钟开始。从设计部分开始,我在 Photoshop 中为我的时钟创建了一个智能框架。然后我将其作为窗体的背景图像添加,在表盘上写上数字,并在中间创建三条小线(时钟的指针)。

设计部分完成!!现在进入编码部分。让我们从创建时钟开始
砰!!!

Private Sub Timer1_Timer()
Form1.Caption = Time

sdeg = Second(Time) * 6
mdeg = Minute(Time) * 6
hdeg = Hour(Time) * 6

' Second Hand
srad = (3.14 / 180) * sdeg
Line2.X1 = Line2.X2 + (90 * Sin(srad))
Line2.Y1 = Line2.Y2 - (90 * Cos(srad))

' Minute Hand
mrad = (3.14 / 180) * mdeg
Line1.X1 = Line1.X2 + (80 * Sin(mrad))
Line1.Y1 = Line1.Y2 - (80 * Cos(mrad))

' Hour Hand
hdeg = Hour(Time) * 30 + (0.5 * Minute(Time))
hrad = (3.14 / 180) * hdeg
Line3.X1 = Line3.X2 + (65 * Sin(hrad))
Line3.Y1 = Line3.Y2 - (65 * Cos(hrad))
End Sub

这就是创建运行的时钟所需的所有代码!!很简单,不是吗?
这完全是数学。首先,我们计算指针的角度(以度为单位)(即乘以 6),因为

1 个圆 = 360 度,时钟上有 60 个刻度,所以两个连续刻度之间的差异是 6 度

现在我们将角度转换为弧度(π/180)* 角度(记住小学数学课 :))

最后,我们通过改变它们的 X 和 Y 坐标来移动指针……如果我们互换 Cos 和 Sin,时钟将逆时针移动(嘿嘿)。

就这样,我们的时钟完成了……它没有做太多,所以我考虑在其中创建一个游戏。游戏很简单。你只需要从 1 到 12 中选择一个数字(表盘上的数字),然后旋转轮子。轮子将继续在数字上旋转,在指定的时间间隔后反转方向,除非你点击它来停止它。如果轮子停在你选择的数字上,你就赢了!!

这就是我们简单消遣游戏的概念……现在是代码

Private Sub Timer2_Timer()
Label1(12).ForeColor = vbGreen

If (i <= 13) Then
    Label1(i).ForeColor = vbBlue
    Label1(i - 1).ForeColor = vbGreen
    i = i + 1
End If

If i = 13 Then
    i = 1
End If

If Timer2.Interval >= 10 And Timer2.Interval < 90 Then
    Timer2.Interval = Timer2.Interval + 1
End If
If Timer2.Interval = 90 Then
    Timer2.Interval = 10
    Timer3.Enabled = True
    Timer2.Enabled = False
End If
End Sub

' To display the spinning effect anti clockwise

Private Sub Timer3_Timer()
Label1(1).ForeColor = vbGreen

If (j >= 1) Then
    Label1(j).ForeColor = vbBlue
    Label1(j + 1).ForeColor = vbGreen
    j = j - 1
End If

If j = 0 Then
    j = 12
End If

If Timer3.Interval <= 90 And Timer3.Interval > 10 Then
    Timer3.Interval = Timer3.Interval - 1
End If
If Timer3.Interval = 10 Then
    Timer3.Interval = 90
    Timer3.Enabled = False
    Timer2.Enabled = True
End If
End Sub

上面我们有两个定时器用于旋转轮子。唯一的区别是,一个定时器在指定的时间间隔后顺时针旋转轮子,另一个逆时针旋转轮子(只是为了增加一些乐趣)。旋转在改变方向时会加速和减速。

现在,为了产生旋转效果,我们所做的一切就是将当前数字的颜色更改为蓝色(所有数字默认都是绿色),移动到下一个数字将其更改为蓝色,并将上一个数字更改回绿色。这样看起来轮子就在移动。代码很容易理解……

我就说这么多吧……别忘了留下你的反馈

© . All rights reserved.