如果希望更改3个小球位置仍然保持均匀分布,则需要修改4行代码,修改后代码
Sub 游戏执行过程(hWndForm As hWnd)
Dim gg As yGDI = hWndForm
gg.Brush(&HFF0000)
gg.DrawEllipse(100, 1*(200/4)-50, 50, 50)
gg.DrawEllipse(100, 2*(200/4)-50, 50, 50)
gg.DrawEllipse(100, 3*(200/4)-50, 50, 50)
End Sub
是否有更简单的方法?下面我们介绍变量的概念,并讲解如何利用变量来存储、修改多个小球的参数。输入并运行以下代码:
Sub 游戏执行过程(hWndForm As hWnd)
Dim x As Long
x = 10
Print x
End Sub
其中,Long为FB语言的关键词,Dim x As Long 定义了整型变量x,即x可以存储整数。
程序运行后输出结果如下:

定义变量后,可以利用赋值语句对变量进行赋值,如x=10;语句,意为将x的值设为10。
print()函数除了可以输出整数常量,也可以输出变量的值,如print(x) 输出整型变量x的值——10。
变量之间也可以进行赋值、四则运算:
Sub 游戏执行过程(hWndForm As hWnd)
Dim As Long x, y, z
x = 4
Print x
y = x
Print y
z = 2 *x - y + 1
Print z
End Sub
程序运行后输出结果如下:

其中,Dim As Long x, y, z 表示定义了3个整型变量x、y、z,同时定义的多个变量之间以逗号分隔。
y = x 将x的值赋给y,即y的值也变为5。
FB语言中的等号和数学运算中的符号意义不太一样,前者将等号右边的值赋给等号左边的变量。x = x – 2 将x–2的值赋给变量x,运行后x值为3。
变量和常量之间也可以进行混合运算,执行 z = 2*x – y + 1 后,z的值变为2。
练习题2-3:长方形的宽width=20,高height=10,编程求出长方形的周长length、面积area并输出,
提示
变量的名字可以由字母、下划线、数字组成,开头不能是数字。另外,变量名是区分大写字母、小写字母的,大小写不同表示不同的变量。
定义变量height 记录高度,将2-3修改为:rcn t
Sub 游戏执行过程(hWndForm As hWnd)
Dim gg As yGDI = hWndForm
gg.Brush(&HFF0000)
Dim height As Long
height=200
gg.DrawEllipse(100, 1*(height/4)-50, 50, 50)
gg.DrawEllipse(100, 2*(height/4)-50, 50, 50)
gg.DrawEllipse(100, 3*(height/4)-50, 50, 50)
End Sub
将高度调整为200,只需将代码改为height = 200 即可,程序运行结果如图所示。

定义变量y记录小球的y坐标、变量st记录两个小球间的距离,以下代码可以绘制出多个小球:
Sub 游戏执行过程(hWndForm As hWnd)
Dim gg As yGDI = hWndForm
gg.Brush(&HFF0000)
Dim y As Long = 10
Dim St As Long = 40
gg.DrawEllipse(100, y, 20, 20)
y=y+St
gg.DrawEllipse(100, y, 20, 20)
y=y+St
gg.DrawEllipse(100, y, 20, 20)
y=y+St
gg.DrawEllipse(100, y, 20, 20)
y=y+St
gg.DrawEllipse(100, y, 20, 20)
End Sub
其中,Dim y As Long = 10定义了整型变量y,并初始化为10;Dim St As Long = 40定义了整型变量st,并初始化为40。
程序运行后,输出效果如图2-15所示。

变量y记录小球的y坐标,第一个小球的y坐标初始化为10。变量st记录两个小球之间的距离,设为40。y = y+st;让小球y坐标每次增加st,即可以绘制出多个小球。
修改y 的值,可以设定最上面小球的起始位置。修改st的值,即可以设定两个小球之间的间隔。
评论一下?