'时钟触发事件,产生随机数,确定靶子标签的位置,靶子数加1
'如果靶子数超过10,停止游戏,否则计算打中率Private Sub Timer1_Timer()
Dim X As Single
Dim Y As Single
X = Rnd * (Picture1.ScaleWidth - lbltarget.Width)    <----这里面的X和Y是起什么用的
Y = Rnd * (Picture1.ScaleHeight - lbltarget.Height)
lbltarget.Top = Y                   <-------这里是什么意思
lbltarget.Left = X       <-------这里是什么意思
z_num = z_num + 1
If z_num > 30 Then
Timer1.Enabled = False
lbltarget.Visible = False
Else
Label2 = z_num
percent = tar_num / z_num
Label6 = CStr(percent * 100) & "%"cstr是干什么的
(Picture1.ScaleWidth - lbltarget.Width)
Picture1.ScaleHeight - lbltarget.Height)
这是什么意思
请高手帮我分析哈
谢谢了
我是新手

解决方案 »

  1.   

    X,Y是计算出标签的left和top,也就是相对于picture的最左边和最上边的距离,用来确定标签的具体位置,用了个随机函数rnd。
    不过建议在计算x,y之前加一个randomize,否则每次运行即使用rnd函数结果也会是一样的
    cstr是把值转换成String型,代码中用来在标签上显示命中率,不过在这里不转换也可以,vb会自动隐式帮你转换的,写一下的话看起来清楚,是个比较好的习惯(Picture1.ScaleWidth - lbltarget.Width)
    (Picture1.ScaleHeight - lbltarget.Height)
    这里是计算标签可移动的长度范围,即用picture的width减去标签的width,只不过picture用的是scalewidth,如果你没有改变过scalemode的话,默认单位为是twip,基本上就是picture的width属性了
      

  2.   

    cstr 就是change string,转换成字符串