VisualFreeBasic游戏趣味编程_2.4_利用变量修改多个小球的位置

2026-1-21 / 0 评论 / 52 阅读

如果希望更改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的值,即可以设定两个小球之间的间隔。

评论一下?

OωO
取消