首页VisualFreeBasic编程文档列表
  • VisualFreeBasic游戏趣味编程_10.3_鼠标点击与十字消除

    首先添加updateWithInput()函数,根据鼠标点击位置(m.x,m.y)计算点中的小方块在二维数组中的行列序号(clicked_i,clicked_j)。为了方便调试,可以将blocks(clicked_i,clicked_j).colorId设为0,即将其颜色设为灰白色:SubupdateWithInput(hWndFormAshwnd)'和输入有关的更新StaticppAsLong'…
  • VisualFreeBasic游戏趣味编程_10.2_随机颜色方块的实现

    为了实现随机颜色的方块,首先进行宏定义:#defineColorTypeNum9'方块颜色为彩色的个数定义全局变量colors数组记录ColorTypeNum+1种颜色,其中第0种为灰白色(表示空白),其他为彩色:DimSharedcolors(ColorTypeNum)AsCOLORREF'颜色数组,小方块可能的几种颜色在startup()函数中对颜色数组进行初始化:colors(0)=BGR(…
  • VisualFreeBasic游戏趣味编程_10.1_红色方块的表示与绘制

    十字消除游戏画面由很多小方块组成,首先进行宏定义:#defineBlockSize19'小方块的边长#defineRowNum13'游戏画面一共RowNum行小方块#defineColNum21'游戏画面一共ColNum列小方块定义小方块结构体:TypeBlock'小方块结构体AsLongx,y'小方块在画面中的x,y坐标AsLongi,j'小方块在二维数组中的i,j下标EndType利用Bloc…
  • VisualFreeBasic游戏趣味编程_第10章_“十字消除”游戏

    在本章我们将探讨如何编写“十字消除”游戏,用户点击空白方块,沿其上、下、左、右方向寻找第一个彩色方块,如果有两个或两个以上颜色一致,就将其消除。在进度条时间结束前消除足够的方块,可以进入下一关,效果如图10-1所示。本章首先讲解了如何实现随机颜色方块的表示与绘制,鼠标点击与十字消除算法;然后讲解了如何绘制提示框和倒计时进度条;接着讲解了如何开发得分计算、胜负判断、多关卡功能;接下来介绍了地址与指针…
  • VisualFreeBasic游戏趣味编程_9.8_枚举类型

    如果一个变量只有几种可能的值,则该变量可以定义为枚举类型:EnumElement'定义枚举类型,小方块所有的可能的种类wall,target,box,empty,achieved,roleEndEnumDimlevel(7,7)AsLong={{wall,wall,wall,wall,wall,wall,wall,wall},_{wall,wall,wall,target,box,empty,em…
  • VisualFreeBasic游戏趣味编程_9.7_基于文件的关卡数据读取

    FB语言提供了文件读写的功能,输入并运行以下代码:DimbufferAsString,fAsIntegerbuffer="一个文件中的HelloWorld。"f=FreeFile'打开文件“test.ext”进行二进制使用,使用文件号“f”。Open"test.txt"ForBinaryAs#fIfErr>0ThenPrint"打开文件时出错":End'将我们的字符串放在文件中,使用数字“f”。P…
  • VisualFreeBasic游戏趣味编程_9.6_多关卡的实现

    为了实现多个关卡的游戏,首先利用宏定义设定关卡数目:#defineLEVEL_TOTALNUM3'一共多少关卡假设一共有3关,则可以设定2维字符数组levels,存储这3关的所有地图数据:DimSharedlevel(LEVEL_TOTALNUM-1,B_NUM-1)AsZString*B_NUM+1=_{_{"wwwwwwww","wwwtbeew","weeeeeew","weeeeeew",…
  • VisualFreeBasic游戏趣味编程_9.5_游戏胜利判断

    当玩家把所有箱子推到目标位置时游戏胜利,如图9-6所示。首先定义全局变量存储地图中目标位置的个数、完成目标的个数:DimSharedAsLongtargetNum,achievedNum'目标位置个数、完成目标个数在startup()函数中对二维数组进行遍历,如果地图元素为target或achieved,则将目标个数targetNum加1:Substartup()'初始化函数DimiAsLong,…
  • VisualFreeBasic游戏趣味编程_9.4_元素更新的实现

    假设键盘控制游戏角色向右移动,根据其右侧目标位置、再右侧位置的元素,有表9-2所示情况。根据用户的不同输入,变量goal_i、goal_j存储游戏角色移动的目标位置,goalNext_i、goalNext_j存储目标位置再向前的一个位置。根据表9-2,共有6种情况会移动游戏角色及更新关卡元素,在update()函数中实现相应的处理:SubupdateWithInput(hWndFormAshWnd…
  • VisualFreeBasic游戏趣味编程_9.3_键盘控制游戏角色移动

    为了实现键盘控制游戏角色移动,首先定义结构体用于记录玩家位置:TypePlayer'结构体,用于记录玩家位置iAsLongjAsLongEndType定义全局变量player储存游戏角色的位置:DimSharedPlayersAsplayer'玩家全局变量在初始化时,找到二维数组level中值为'p'的元素,得到玩家位置赋给变量player,再把元素值变成'e':Substartup()'初始化函…