首页VisualFreeBasic编程文档列表
  • VisualFreeBasic游戏趣味编程_11.3_绘制樱花树

    修改练习题11-1中的brunch()函数,当第10代树枝或树枝长度小于2时,绘制一个粉色填充圆,表示樱花:IfchildLength=9Thengg.Pen1,HSBtoRGB_Gdi(HSB(325,50,100,255))'设定线条颜色为粉色gg.BrushHSBtoRGB_Gdi(HSB(325,50,100,255))'设定填充颜色为粉色IfchildLength360Thenangle…
  • VisualFreeBasic游戏趣味编程_11.2_分形与递归

    雪花、果实、闪电、叶子、树枝、河道等自然界中很多对象的图形都具有以下两个特征:(1)整体上看,物体图形是处处不规则的;(2)在不同尺度上,图形的结构又有一定的相似性。如图11-5所示。满足这些特征的图形可以称为分形(Fractal),图11-6展示了用分形方法绘制一棵树的过程:绘制过程可抽象为如下步骤。(1)绘制一个树干。(2)绘制其左边的子树干,绘制其右边的子树干。(3)当到第n代树干时停止生成…
  • VisualFreeBasic游戏趣味编程_11.1_递归

    函数在定义时可以调用其他的函数。输入并运行以下代码:Subfun1()Print"a"EndSubSubfun2()fun1()Print"a"EndSubSub游戏执行过程(hWndFormAshWnd)fun2()Print"c"EndSub程序运行后输出:abc程序运行流程如图11-2所示。(1)代码首先从主函数开始运行,调用fun2()函数。(2)进入fun2()函数内部。(3)在fun2…
  • VisualFreeBasic游戏趣味编程_第11章_樱花树

    在本章我们将探讨如何绘制一些漂亮的樱花树,如图11-1所示。通过鼠标交互设定樱花树的高度和分散程度,鼠标右键点击设置是否显示过程动画,鼠标左键点击开始绘制。本章首先介绍了递归的概念,以及如何实现汉诺塔问题的求解;然后介绍了分形的概念,以及如何利用递归调用绘制一棵分形树;最后讲解了如何修改分形树的生成与绘制参数,实现随机樱花树的绘制。
  • VisualFreeBasic游戏趣味编程_10.9_指针与数组

    数组名作为函数参数时可以修改实际参数的值(8.4节),这是因为数组的名字就是一个指针:Sub游戏执行过程(hWndFormAshWnd)Dima(4)AsLong={1,2,3,4,5}Print@a(0)EndSub将指针变量p赋为数组的首地址,则可以通过以下方式访问数组元素:Sub游戏执行过程(hWndFormAshWnd)Dima(4)AsLong={1,2,3,4,5}DimpAsLong…
  • VisualFreeBasic游戏趣味编程_10.8_地址与指针

    FB语言中所有变量都存储在内存中,而存放变量特定内存单元的编号就称为地址,输入并运行以下代码:Sub游戏执行过程(hWndFormAshWnd)DimaAsLonga=1PrintaPrint@aEndSub程序运行后输出154394640其中@称为取地址运算符,@a即为变量a的地址。注意,每次运行时,程序为变量a分配的地址可能不一样。54394640的数字每次运行都会不同为了处理地址,我们可以定…
  • VisualFreeBasic游戏趣味编程_10.7_多关卡与增加游戏难度

    首先,定义level表示当前为第几关:DimSharedlevelAsLong=1'当前关卡序号在start()函数中,随着level的增加,当前关的游戏总时长越来越短:maxTime=200-level*10show()函数中显示当前为第几关、已得分数、得到多少分可以进入下一关:gg.DrawTextS0,242,窗口宽度,20,"当前第"&level&"关,已得"&score&"分,达到"&I…
  • VisualFreeBasic游戏趣味编程_10.6_得分计算与胜负判断

    首先定义变量score记录玩家消去的方块个数,noZeroBlockNum记录游戏开始时彩色砖块的总数,设定当score>=0.9*noZeroBlockNum时游戏胜利:DimSharedscoreAsLong'得分数,也就是消去的方块的个数DimSharednoZeroBlockNumAsLong'非空白区域的砖块的个数在startup()初始化函数中统计随机生成的彩色砖块总数:Ift>0Th…
  • VisualFreeBasic游戏趣味编程_10.5_倒计时与进度条

    输入并运行以下代码,窗口显示出程序运行了多少秒:Sub游戏执行过程(hWndFormAshWnd)DimggAsyGDI=hWndFormDim开始时间AsDouble=Now()Dim当前时间AsDoubleDo'循环执行gg.Clsgg.Font"黑体",20当前时间=Now()gg.DrawString100,100,"程序运行了"&DateDiff("s",开始时间,当前时间)&"秒"gg…
  • VisualFreeBasic游戏趣味编程_10.4_方块提示框的绘制

    为了便于玩家看到自己点击的方块、十字区域内可以消除的方块,需要绘制方块提示框。首先定义绘制提示框的函数:gg.BrushBGR(105,105,105)'GDI的颜色值。gg.DrawFrameblocks(clicked_i,clicked_j).x,blocks(clicked_i,clicked_j).y,BlockSize,BlockSize如果十字区域有要消除的彩色方块,则执行:gg.P…