首页标签编程
  • 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章_“推箱子”游戏

    在本章我们将探讨如何编写“推箱子”游戏,即玩家通过键盘控制游戏角色将所有黄色箱子推到白色方块处,效果如图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),根据当前小圆圈的序…
  • VisualFreeBasic游戏趣味编程_8.4_函数的参数传递

    在本节我们介绍一般变量、数组元素、数组名作为函数参数的几种情况。输入并运行以下代码:Subfun(aAsLong)a+=1PrintaEndSubSub游戏执行过程(hWndFormAshWnd)DimxAsLong=1Printxfun(x)PrintxEndSub程序运行后输出:121程序从主函数开始运行,首先定义变量x并初始化为1,printx输出1。接着执行fun(x)进入fun()函数,…
  • VisualFreeBasic游戏趣味编程_8.3_被鼠标点击后旋转

    鼠标点击位置的坐标为(m.x,m.y),根据图8-3中5行5列小圆圈的坐标设置(代码8-1-2.cpp),被鼠标点中的小圆圈在二维数组rounds中的行、列序号为:Dimclicked_iAsLong=Int(ps.y-45)/45Dimclicked_jAsLong=int(ps.x-45)/45被点中的小圆圈需要顺时针旋转90度,如图8-6所示。只需要将其angleNum值依次+90即可:Ro…