前言
打开CSDN或者度娘(谷哥被墙了,搜索不了),关键词“VB6 dx9 DirectX9 游戏源码”,你会发现,讲解DX9技术的文章很多,但是跟VB6都没什么关系。偶有几片文章讲的也是概念,很多源码例子都是C,C++,PY,C#或者VB.NET的,VB6真的很少很少了。
难道VB6就这么被淘汰了吗?
NONONO!
VB6作为非专业人士的编程工具,还是有很多人在用的,特别是工控机上,还有一些学校也有教学。作为一门上手容易入门难的编程语言,确确实实的给不少像我这样的普通人一个学编程的机会,即使英语不好,也能制作一些自己的小工具,在工作的时候,用的上。
闲暇之余,也想用VB6编写个小游戏什么的,然而网上关于VB6的资料越来越少,也越来越不容易免费得到。幸而,我自己一直在坚持学习,虽然自学的路很苦很难,遇到问题也问不到人。希望有一起学的人,大家相互鼓励,相互帮助。
因本人学识有限,编程技术也差,错误在所难免,写在这里的文章仅作为自己自学的一个心路历程,不作为教程。
第一章 DX9入门
关于DirectX的发展史,版本什么的,网上一大把,这里不重复了。这里以DirectX9.0C版本为学习对象。它的组成有以下几个方面:
DirectX包含多个API组件
(1) DirectX Graphics(DirectX图形处理)
由Direct3d和DirectDraw整合而成,负责处理3D和2D图形处理和实现。
(2) DirectX Audio(DirectX音频处理)
由DirectMusic(Direct音乐)和DirectSound(Direct音效)整合而成,负责音乐和音效合成效果。
(3) DirectInput
是一个输入设备的应用程序接口(API),包含鼠标,键盘,游戏杆等输入设备。
(4) DirectPlay
是应用程序和通信服务之间的接口,提供了传输层和会话层的服务。
(5) DirectShow
用于用户回放 记录各种形式的视频流和音频流。
在DirectX9.0C中,使用到的COM技术表述如下:(这些知识现在不需要懂,了解就好。)
组件对象模型 (Component Object Model,COM) 技术是 DirectX 的基础,它是一种标准,定义了软件对象或组件之间的交互规则。
一个 COM 对象通过接口的方式提供自己的功能.(接口是指一组永不改变对象的方法)
COM 组件有3个基本的接口类:
(1) IUnknown : COM规范规定任何组件 任何借口都必须从IUnknown继承,所有COM对象都必须有一个公用的接口IUnknown,接口必须实现IUnknown
AddRef() 增加对象的引用计数器
Release() 减少对象的引用计数器
QueryInterface 获取某个特定对象接口的引用
(2) IClassFactory : 用来创建COM组件
(3) IDispatch : 用来调度接口
当你从网上下载了诸如“DirectX9中文帮助手册”或者“DirectX9_SDK中文文档”这类的资料,打开一看,全TMD的高等数学题一般的东西,看都看不懂,还有兴趣学习DirectX9吗?
现实就是这样,一个普通人要发财,是很难的,同样,一个学历不高,英文看不懂的业余编程人员,想看懂专业资料也是很难的。
巨硬为什么放弃VB6,这就跟为什么私立学校越来越多(近来,国内正在限制私立学校的发展。),学费越来越贵?就是资本或企业为了赚钱,赚更多的钱,淘汰掉穷人或者低学历的人。
很不幸,我恰好是要被淘汰的那一批人,显然,能找到CSDN平台的,至少都是学历较高的人,就跟知乎上个个都是年薪百万的一般,整个社会都在淘汰低层次的人,借着会形成一个个的学阀或阶级。
低阶级的人想爬上去很难,就跟种姓制度一样,一个人或一群人的反抗是没有用的,整个社会都那样了。
同理,使用VB6的终将被淘汰,如果你还年轻,那就赶紧换编程语言吧,比如C#或者JAVA。
如果像我这样,行将枯木,半截身下土了,那就在老爷机上继续用VB6吧,直到最后一刻。