论坛的首页
勇芳的软件
教程和帮助
VisualFreeBasic编程文档
勇芳系列软件帮助说明教程
留言或交流
登录
搜索
登录
搜索
勇芳
累计撰写
330
篇文章
累计收到
0
条评论
首页
栏目
论坛的首页
勇芳的软件
教程和帮助
VisualFreeBasic编程文档
勇芳系列软件帮助说明教程
留言或交流
登录
自定义幻灯片
最新文章
2026-1-21
VisualFreeBasic游戏趣味编程_2.5_小球下落动画
在2-4的基础上,每绘制一个小球后 gg.Redraw 刷新显示,加上Sleep(1000)语句,表示程序暂停1000毫秒(1秒),即可实现小球从上向下依次出现的效果。 Sub 游戏执行过程(hWndForm As hWnd) Dim gg As yGDI = hWndForm gg.Brush(&HFF0000) Dim y As Long = 10 Dim St As Long = 40 gg.DrawEllipse(100, y, 20, 20) gg.Redraw :Sleep(1000) y=y+St gg.DrawEllipse(100, y, 20, 20) gg.Redraw :Sleep(1000) y=y+St gg.DrawEllipse(100, y, 20, 20) gg.Redraw :Sleep(1000) y=y+St gg.DrawEllipse(100, y, 20, 20) gg.Redraw :Sleep(1000) y=y+St gg.DrawEllipse(100, y, 20, 20) End Sub 接下来,利用gg.Cls(GetSysColor(COLOR_WINDOW))清屏函数,在绘制新的小球前先清除画面上的内容,即可实现一个小球逐渐下落的动画效果。 Sub 游戏执行过程(hWndForm As hWnd) Dim gg As yGDI = hWndForm gg.Brush(&HFF0000) Dim y As Long = 10 Dim St As Long = 40 gg.DrawEllipse(100, y, 20, 20) gg.Redraw :Sleep(1000):gg.Cls(GetSysColor(COLOR_BTNFACE)) y=y+St gg.DrawEllipse(100, y, 20, 20) gg.Redraw :Sleep(1000):gg.Cls(GetSysColor(COLOR_BTNFACE)) y=y+St gg.DrawEllipse(100, y, 20, 20) gg.Redraw :Sleep(1000):gg.Cls(GetSysColor(COLOR_BTNFACE)) y=y+St gg.DrawEllipse(100, y, 20, 20) gg.Redraw :Sleep(1000):gg.Cls(GetSysColor(COLOR_BTNFACE)) y=y+St gg.DrawEllipse(100, y, 20, 20) End Sub
2026年-1月-21日
49 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic游戏趣味编程_2.4_利用变量修改多个小球的位置
如果希望更改3个小球位置仍然保持均匀分布,则需要修改4行代码,修改后代码 Sub 游戏执行过程(hWndForm As hWnd) Dim gg As yGDI = hWndForm gg.Brush(&HFF0000) gg.DrawEllipse(100, 1*(200/4)-50, 50, 50) gg.DrawEllipse(100, 2*(200/4)-50, 50, 50) gg.DrawEllipse(100, 3*(200/4)-50, 50, 50) End Sub 是否有更简单的方法?下面我们介绍变量的概念,并讲解如何利用变量来存储、修改多个小球的参数。输入并运行以下代码: Sub 游戏执行过程(hWndForm As hWnd) Dim x As Long x = 10 Print x End Sub 其中,Long为FB语言的关键词,Dim x As Long 定义了整型变量x,即x可以存储整数。 程序运行后输出结果如下: 定义变量后,可以利用赋值语句对变量进行赋值,如x=10;语句,意为将x的值设为10。 print()函数除了可以输出整数常量,也可以输出变量的值,如print(x) 输出整型变量x的值——10。 变量之间也可以进行赋值、四则运算: Sub 游戏执行过程(hWndForm As hWnd) Dim As Long x, y, z x = 4 Print x y = x Print y z = 2 *x - y + 1 Print z End Sub 程序运行后输出结果如下: 其中,Dim As Long x, y, z 表示定义了3个整型变量x、y、z,同时定义的多个变量之间以逗号分隔。 y = x 将x的值赋给y,即y的值也变为5。 FB语言中的等号和数学运算中的符号意义不太一样,前者将等号右边的值赋给等号左边的变量。x = x – 2 将x–2的值赋给变量x,运行后x值为3。 变量和常量之间也可以进行混合运算,执行 z = 2*x – y + 1 后,z的值变为2。 练习题2-3:长方形的宽width=20,高height=10,编程求出长方形的周长length、面积area并输出, 提示 变量的名字可以由字母、下划线、数字组成,开头不能是数字。另外,变量名是区分大写字母、小写字母的,大小写不同表示不同的变量。 定义变量height 记录高度,将2-3修改为:rcn t Sub 游戏执行过程(hWndForm As hWnd) Dim gg As yGDI = hWndForm gg.Brush(&HFF0000) Dim height As Long height=200 gg.DrawEllipse(100, 1*(height/4)-50, 50, 50) gg.DrawEllipse(100, 2*(height/4)-50, 50, 50) gg.DrawEllipse(100, 3*(height/4)-50, 50, 50) End Sub 将高度调整为200,只需将代码改为height = 200 即可,程序运行结果如图所示。 定义变量y记录小球的y坐标、变量st记录两个小球间的距离,以下代码可以绘制出多个小球: Sub 游戏执行过程(hWndForm As hWnd) Dim gg As yGDI = hWndForm gg.Brush(&HFF0000) Dim y As Long = 10 Dim St As Long = 40 gg.DrawEllipse(100, y, 20, 20) y=y+St gg.DrawEllipse(100, y, 20, 20) y=y+St gg.DrawEllipse(100, y, 20, 20) y=y+St gg.DrawEllipse(100, y, 20, 20) y=y+St gg.DrawEllipse(100, y, 20, 20) End Sub 其中,Dim y As Long = 10定义了整型变量y,并初始化为10;Dim St As Long = 40定义了整型变量st,并初始化为40。 程序运行后,输出效果如图2-15所示。 变量y记录小球的y坐标,第一个小球的y坐标初始化为10。变量st记录两个小球之间的距离,设为40。y = y+st;让小球y坐标每次增加st,即可以绘制出多个小球。 修改y 的值,可以设定最上面小球的起始位置。修改st的值,即可以设定两个小球之间的间隔。
2026年-1月-21日
54 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic游戏趣味编程_2.3_显示多个小球
绘制出3个小球。 Sub 游戏执行过程(hWndForm As hWnd) Dim gg As yGDI = hWndForm gg.Brush(&HFF0000) gg.DrawEllipse(100, 30, 50, 50) gg.DrawEllipse(100, 110, 50, 50) gg.DrawEllipse(100, 190, 50, 50) End Sub 绘制区域采用直角坐标系,左上角的坐标为(0,0),横轴方向由x坐标表示,纵轴方向由y坐标表示。窗口中任一点的位置可由其x坐标和y坐标表示,gg.DrawEllipse语句即可绘制对应圆坐标的3个小球,如图2-11所示。 提示 代码中100、30等整数在程序运行后值保持不变,因此它们称为常量。 练习题2-2:绘制所示的图形,分析左右两组图案中间圆的半径大小。 整数之间也可以进行加、减、乘、除四则运算,在FB语言中分别用+、-、*、/ 这4个符号表示。 Sub 游戏执行过程(hWndForm As hWnd) Print 1 + 2 Print 10 -6 Print 3 * 4 Print 8 / 2 End Sub 程序运行后可得到整数运算的结果如下: 利用四则运算,可以修改2-3,让3个小球上下均匀分布 Sub 游戏执行过程(hWndForm As hWnd) Dim gg As yGDI = hWndForm gg.Brush(&HFF0000) gg.DrawEllipse(100, 1*(300/4)-50, 50, 50) gg.DrawEllipse(100, 2*(300/4)-50, 50, 50) gg.DrawEllipse(100, 3*(300/4)-50, 50, 50) End Sub 整数之间也可以进行包含括号的加、减、乘、除混合运算,其规则和数学运算规则一致。
2026年-1月-21日
63 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic游戏趣味编程_2.2_显示一个静止小球
显示一个蓝色的小圆 Sub 游戏执行过程(hWndForm As hWnd) Dim gg As yGDI = hWndForm gg.Brush(&HFF0000) gg.DrawEllipse(150,100,100,100) End Sub 执行代码后的效果 gg.Brush 填充的颜色,为 RGB 颜色。 gg.DrawEllipse 表示画一个填充圆,(150,100)为圆的左上角x坐标和y坐标,宽度和高度100。4个参数放在圆括号内,且以逗号分隔 以上数字为像素单位 提示 1-2的其他行代码,读者目前不用了解其具体含义,暂时理解为一个程序框架即可,我们会在后续章节中逐步讲解。 gg.DrawEllipse(150,100,100,100) 中的数字,在FB语言中也称为整数。读者可以尝试修改1-2中代码,绘制出半径小一些的圆,如图所示。 Sub 游戏执行过程(hWndForm As hWnd) Dim gg As yGDI = hWndForm gg.Brush(&HFF0000) gg.DrawEllipse(150,100,50,50) End Sub 读者也可以利用print()函数,直接输出整数的值: Sub 游戏执行过程(hWndForm As hWnd) Dim gg As yGDI = hWndForm gg.Brush(&HFF0000) gg.DrawEllipse(150,100,50,50) Print 50 End Sub 坐标体系(单位为像素) 坐标是从软件的左上角开始,从左到右为 X ,从上到下为 Y
2026年-1月-21日
58 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic游戏趣味编程_2.1_准备工作
按照第一章的做法,先创建框架代码,以后所有的都是按照这个框架代码里执行 后面就不再重复说明,都是在此修改代码。
2026年-1月-21日
57 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic游戏趣味编程_第2章_仿真“自由落体的小球”
在本章我们将探讨如何实现小球受重力影响加速下落后,碰到地面反弹的效果 本章首先介绍了代码写在上面地方,以及如何显示一个静止小球;之后介绍了整数常量的知识,并讲解如何绘制多个小球;然后介绍了整型变量的定义和使用,以及如何修改小球坐标;接着介绍了while(1)循环和if语句,分析小球下落和反弹的实现方法;最后介绍了浮点型变量,讲解如何实现小球受重力加速下落的效果。
2026年-1月-21日
68 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic游戏趣味编程_第1章_开发环境介绍
可视化FreeBasic语言集成开发环境 一、新建一个工程 点击新建按钮,然后选择 VFB框架,输入软件名称 二、切换到窗口代码 三、写好代码框架 复制以下代码,为我们后面写游戏使用 注意: 下面代码,必须存在,软件才可以执行,后面教程中将不会提及,也不出现下面代码。 Sub Form1_Shown(hWndForm As hWnd, UserData As Integer) Threaddetach ThreadCreate(Cast(Any Ptr, @游戏执行过程), hWndForm) End Sub Sub 游戏执行过程(hWndForm As hWnd) Dim gg As yGDI = hWndForm End Sub 四、执行代码 点击编译执行按钮 我们就可以看到效果,现在还没内容,只是做了装备工作,看后面章节就有了。 五、游戏开发和应用开发 这里的教程是讲解游戏开发,软件执行逻辑和软件架构,和应用软件是不同的。 游戏是“帧”驱动,每时每刻循环绘画,每一帧画面,需要做什么事情,主动安排。 应用是“消息”驱动,系统发送软件来消息,就是“事件”,依据“事件”再写处理代码。
2026年-1月-21日
58 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic游戏趣味编程(使用yGDI)
本教程通过趣味案例逐步引入语法知识,教读者用VisualFreeBasic编写游戏程序(简称VFB),激发读者学习编程的兴趣。全书共14章和3个附录,依次介绍了VFB编程语言的基本概念、数据类型、if语句、while循环、for循环、一维数组、函数、二维数组、字符串、文件读写、指针、递归、面向对象编程、链表和FB标准模板库等知识,其中贯穿了众多的小案例和游戏,最后综合应用这些知识编写了一款冒险游戏。附录分别给出了练习题的参考答案、语法知识索引以及常用的调试方法和辅助开发工具。本书适合不同年龄、不同层次的FB编程初学者阅读和自学,也可以作为中学生、大学生学习程序设计的教材和少儿编程培训机构的参考教材。 本教程改编自【C和C++游戏趣味编程】的书籍 C和C++游戏趣味编程 版 权 著 者 童 晶 责任编辑 陈冀康 人民邮电出版社出版发行 本来是C语言的教程,由勇芳改编成 VisualFreeBasic 语言,免费提供给大家使用。 天下编程本一家,大多编程教程都能通用。勇芳也只是兴趣爱好,用爱发电,希望更多人能使用 VFB 编程,才辛苦翻译,并没1分钱的收获。 改编后若有侵犯到版权,请通知勇芳删除教程并表示歉意。 系统DPI 操作系统里面有个DPI,而 VFB 自动响应DPI缩放, 我们写的代码是按照 100% 时的像素写的,但系统里设置了DPI,比如 125%,那么画 100的圆,实际输出 125 的圆。这样我们写的软件,不管在什么系统,什么 DPI 的情况下,输出的效果保持一致。
2026年-1月-21日
105 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic游戏编程例题
如果你觉得编程是晦涩难懂的天书,那一定是还没试过用它来做游戏。 想象一下:当你敲下几行代码,屏幕上跳出一个会跟着鼠标跑的小方块;再添几句,这个方块就能躲开迎面而来的障碍物;继续加几行,它甚至能吃掉金币、闯过关卡 —— 这不是魔法,而是你亲手写出的游戏。 这本教程里没有枯燥的理论堆砌,只有一个个能让你立刻动手的游戏例题。从最简单的 “控制小球移动”,到能和朋友比拼的 “双人打砖块”,每一步都像玩游戏闯关一样: 你不需要记住 “变量”“函数” 这些拗口的词,只需要知道 “给角色起个名字”“让它做个动作”; 你不用害怕写错代码,因为每一次错误都会让角色做出搞笑的事 —— 比如卡在墙里、原地打转,而修正它的过程就像解开一个小游戏的谜题; 你更不用担心学不会,因为每个例题都像搭积木一样拆解成了超简单的步骤,哪怕是第一次碰键盘,也能跟着一步步做出能玩的小游戏。 为什么要通过游戏学编程?因为游戏是最懂你的老师: 它会用最直观的方式告诉你代码的作用 —— 想让角色跳得高一点?改个数字就行; 它会给你即时的奖励 —— 每完成一个例题,你就拥有了一个能玩、能炫耀的小作品; 它会悄悄培养你的编程思维 —— 当你为了让敌人更聪明而思考 “如果玩家躲在这里,敌人就该绕过去” 时,逻辑能力已经在不知不觉中变强了。 或许你从来没想过自己能写出代码,但当你跟着做出第一个会动的游戏时,会突然发现:编程不过是和电脑聊天的一种方式 —— 你告诉它 “让这个小球动起来”,它就照做;你和它商量 “如果碰到这个就加分”,它就乖乖执行。 现在,准备好开启这场特别的游戏了吗?第一个任务很简单:让屏幕上的小方块,跟着你的心意动起来。接下来的每一步,你都会惊讶地发现:原来自己真的能写出游戏,原来编程可以这么有趣。
2026年-1月-21日
173 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic网络编程
首先添加网络控件,以后说明,都是使用控件实现功能。 网络编程是指通过计算机网络实现不同设备间数据交换和通信的编程技术。从简单的网页浏览到复杂的分布式系统,从即时通讯到云计算服务,网络编程无处不在,是构建现代互联网应用的基石。 一、核心概念与基础架构 1. 网络协议栈 网络通信遵循分层协议架构,常见的有 OSI 七层模型和 TCP/IP 四层模型: 物理层:传输介质(光纤、电缆、无线) 数据链路层:MAC 地址、帧传输(以太网、Wi-Fi) 网络层:IP 地址、路由选择(IPv4/IPv6) 传输层:端到端通信(TCP/UDP) 应用层:HTTP、SMTP、FTP、DNS 等协议 2. 传输层协议对比 特性 TCP(传输控制协议) UDP(用户数据报协议) 连接性 面向连接 无连接 可靠性 保证数据可靠传输 不保证数据可靠到达 有序性 保证数据按序到达 不保证顺序 传输效率 相对较低(有握手和确认机制) 相对较高(无额外开销) 应用场景 网页、文件传输、邮件 实时音视频、游戏、DNS 查询 二、网络编程模型 1. 客户端 - 服务器(C/S)模型 架构:客户端主动请求服务,服务器被动响应 应用:邮件客户端、数据库连接、远程桌面 特点:需要安装特定客户端软件,服务器需长期运行 2. 浏览器 - 服务器(B/S)模型 架构:基于 Web 浏览器的特殊 C/S 模型 应用:网站、Web 应用、在线游戏 特点:客户端只需浏览器,跨平台性强 3. 点对点(P2P)模型 架构:节点间直接通信,无中心化服务器 应用:文件共享(BitTorrent)、即时通讯(Skype) 特点:高可扩展性,但管理和安全较复杂 三、常见网络编程接口 1. Socket 编程 概念:操作系统提供的网络通信接口,支持 TCP 和 UDP 工作流程: 服务器:创建Socket → 绑定地址 → 监听连接 → 接受请求 → 收发数据 → 关闭 客户端:创建Socket → 连接服务器 → 收发数据 → 关闭 示例场景:聊天程序、远程控制、实时数据传输 VFB 中的网络控件,就是用Socket 封装,实现 TCP 和 UDP 通信
2026年-1月-21日
132 阅读
0 评论
VisualFreeBasic编程文档
14
15
16
17
18