首页教程和帮助列表
  • 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()'初始化函…
  • VisualFreeBasic游戏趣味编程_9.2_应用字符数组存储关卡数据

    推箱子游戏效果如图9-4所示。图9-4中的“推箱子”游戏一共有表9-1所示的几种元素。表9-1元素图片功能描述英文名称缩写字符空白区域:玩家可以穿过,箱子可以推上去empty'e'墙:玩家不能经过,箱子不能推过去wall'w'箱子:在前方没有障碍物的情况下,玩家可以推动box'b'空白目标:需要玩家将箱子推上去target't'完成目标:一个箱子在目标上的叠加状态achieved'a'游戏角色:可…
  • VisualFreeBasic游戏趣味编程_9.1_字符串与字符数组

    语句print("hello")中双引号包含的多个字符,在FB语言中称为字符串。字符串也可以用字符型数组进行存储,输入并运行以下代码:Sub游戏执行过程(hWndFormAshWnd)Dimstr1AsString="hello"Printstr1Dimstr2AsZString*5="hello"Printstr2Dimstr3AsWString*5="中文五个字"Printstr3EndSub…
  • VisualFreeBasic游戏趣味编程_第9章_“推箱子”游戏

    在本章我们将探讨如何编写“推箱子”游戏,即玩家通过键盘控制游戏角色将所有黄色箱子推到白色方块处,效果如图9-1所示。在本章我们将探讨如何编写“推箱子”游戏,即玩家通过键盘控制游戏角色将所有黄色箱子推到白色方块处,效果如图9-1所示。
  • VisualFreeBasic游戏趣味编程_8.6_操作步数与旋转度数

    首先定义全局变量step记录还剩下的操作步数,score记录一共旋转的度数:DimShared步数AsLong'还剩下的操作步数DimShared得分AsLong'得分,也就是一共旋转了多少度在startup()函数中进行初始化:Substartup()'初始化函数步数=10'一共可以操作10步得分=0'初始为0度在show()函数中输出相关的文字信息:gg.Font"黑体",24gg.SetCo…
  • VisualFreeBasic游戏趣味编程_8.5_旋转的传播

    当鼠标点中一个小圆圈时,小圆圈顺时针旋转90度,然后其指向的下一个圆圈继续旋转90度,如此迭代下去,直到不指向任何小圆圈为止(此时指向边界),如图8-7所示。首先定义一维数组indexes存储被鼠标点中的小圆圈在二维数组rounds中的行列序号:Dimindexes(1)AsLong'数组存储点击小圆圈的行列序号定义函数intGetNextIndexes(intindexes),根据当前小圆圈的序…