首页教程和帮助列表
  • VisualFreeBasic游戏趣味编程_第6章_“见缝插圆”游戏

    在本章我们将探讨如何绘制一些漂亮的随机图案,如图6-1所示,随机生成的圆互不相交且尽量填满画布,按空格键可以切换不同的绘制模式。本章首先分析了如何利用数组实现多个圆的生成和绘制,并使得圆和圆之间不相交;然后介绍了函数的概念、如何应用函数改进代码,以及如何实现添加新圆半径最大化的功能;最后讲解了如何利用函数封装多种绘制模式,并通过键盘按键进行互动。
  • VisualFreeBasic游戏趣味编程_5.7_得分与显示效果改进

    定义整型变量记录游戏的得分,并初始化为0DimscoreAsLong'得分当用户按空格键并且游戏没有失败,则得分增加1:score=score+1'得分+1最后将score转换为字符串输出:gg.Font"黑体",14gg.SetColorBGR(0,178,0)'文字颜色gg.DrawString5,90,"得分:"&score'显示得分填充绘制圆盘,随着针数的增加,圆盘填充颜色越来越鲜艳:gg…
  • VisualFreeBasic游戏趣味编程_5.6_游戏失败判断

    当新增加的针和已有针发生碰撞时,游戏失败。在此设定当两根针的旋转角度差的绝对值小于0.5度时,认为两根针足够接近,即发生了碰撞,然后退出游戏循环IfIsKeyPress(VK_SPACE)Then'按下空格键IflineNum
  • VisualFreeBasic游戏趣味编程_5.5_针的发射与新增

    首先在画面左边绘制一根针,表示待发射针的位置:gg.DrawLine0,120,100,120假设初始状态下没有针在旋转:DimlineNumAsLong=0浮点数数组存储所有可能针的旋转角度,假设最多有1000根针DimAngles(999)AsSingle当用户按下空格键时,针的个数加1,并且新增加的针初始角度为PI。用户不断按下空格键,即可持续生成新的针IfIsKeyPress(VK_SPA…
  • VisualFreeBasic游戏趣味编程_5.4_批量绘制函数

    当绘制的元素较多时,会出现明显的画面闪烁,这时可以使用批量绘图函数。以上情况是在使用普通绘图必须要做的事情。然而我们用的是yGDI绘图类(可以查看VFB代码绘图篇)DimggAsyGDI有缓冲,绘图快。不需要考虑这些问题。
  • VisualFreeBasic游戏趣味编程_5.3_利用数组实现多根针的绘制

    要实现多根针的绘制,需要记录每根针的角度值。这一节将介绍数组的概念,读者可以输入并运行以下代码:Sub游戏执行过程(hWndFormAshWnd)Dima(2)AsLonga(0)=1Printa(0)a(1)=3*a(0)Printa(1)a(2)=a(0)+a(1)Printa(2)Endsub程序运行后输出:其中,Dima(2)AsLong定义了整型数组a,a一共有3个元素——a(0)、a(…
  • VisualFreeBasic游戏趣味编程_5.2_针的旋转

    针的起点坐标为中心(200,120),假设针的长度为lineLength,针的旋转角度为angle,则由三角函数可以求出针的末端坐标(xEnd,yEnd)。完整代码参看。Sub游戏执行过程(hWndFormAshWnd)DimggAsyGDI=hWndFormDimpiAsSingle=3.1415926/180DimlineLengthAsLong=100'针的长度DimAsLongxEnd,y…
  • VisualFreeBasic游戏趣味编程_5.1_绘制圆盘与针

    输入并运行以下代码,可以在画面中间绘制一个圆表现圆盘、一条线段,用来表示一根针,圆心坐标及线段起点坐标均为(200,120)。Sub游戏执行过程(hWndFormAshWnd)DimggAsyGDI=hWndFormgg.Pen3,BGR(0,0,0)'线宽为3,这样针看起来更明显gg.Brush'不填充色彩gg.DrawLine200,120,300,120gg.Pen2,BGR(255,0,0…
  • VisualFreeBasic游戏趣味编程_第5章_“见缝插针”游戏

    在本章我们将探讨如何实现一个“见缝插针”游戏。按下空格键后发射一根针到圆盘上,所有针逆时针方向转动;如果新发射的针碰到已有的针,游戏结束。如图5-1所示。本章首先讲解了如何绘制圆盘与针,利用三角函数实现了针的旋转;然后介绍了一维数组的概念,并利用数组解析了如何实现多根针的效果;接着利用批量绘制函数分析了绘制效果改进方法;最后分析了针的发射与增加、游戏失败判断、得分与显示效果的改进方法。
  • VisualFreeBasic游戏趣味编程_4.7_按键切换效果

    利用do循环和IsKeyPress()函数,可以实现每次按键后,重新生成随机颜色。另外,利用Randomize()函数对随机函数初始化,避免每次运行的随机颜色都一样。Sub游戏执行过程(hWndFormAshWnd)DimggAsyGDI=hWndFormgg.ClsBGR(180,180,180)'GDI的颜色值。gg.Pen0,0'设置线条为没有DimiAsLong,jAsLong,度AsLo…