首先我们写这个RPG游戏其实就是一个GDIplus绘图简单应用
那么我们首先就要知道什么是GDI?!
其实在计算机的早期时代,硬软件并没有完全统一,这可就苦了编程员们啊!
你可以想象是你要写一份报告,给你的班长看,可你的班长是日本人啊,他只看得懂日语啊!你于是辛辛苦苦的写一份日本语版,然后班长告诉你找班主任;
但是啊!你的班主任是英国人,他只看得懂英语啊!然后万般无奈的你只好又去写一份英语版,然后你的班主任告诉你:去找年级组长;
可气的是啊!年级组长是德国人!你又要写一份德语版,最后你的年级组长对已经气喘吁吁的你说:请交给校长处理……
这个时候你也差不多与世长辞了~
而当时的计算机的硬件就差不多就是这个样子,尤其像什么显示器,打印机这些的!他们在程序中的使用方法都不一样,各有千秋。
没错当时编程员就要根据每一种显示器的情况重新编写一个程序……Orz
于是在那个悲剧的时代windows出现一个划时代的东西:GDI!
GDI(Graphics Device Interface)就是图形设备接口,主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。
还是举上面的例子~
最后的你并没有放弃,因为你找到了金山词霸,你只考虑用自己的语言写就行了,翻译什么靠别人就行了~
而这个GDI就是起到这个“翻译”的目的!
程序上你要画图片可以直接“画”在GDI提供一个“画板”(接口)上,剩下的事情就可以不用去管了,他会自动显示的,这样可以节约很多时间了,不仅如此这里转换对象不仅限于显示器,包括打印机,一切可以显示的东西。
而这里有细心的小伙伴就会发现:我们要学的是GDIplus,与GDI有什么关系?
其实plus就是“+”,GDIplus就是GDI+,也就是GDI的优化版。比起GDI有更多功能!而且GDIplus自windows XP开始就自带有,普遍率还是相当的高!二来关于VB and GDIplus的资料也相当多,所以我们还是使用GDIplus(PS:最重要的原因我是菜鸟……Orz)
说了这么我们来实战一下吧~
首先第一步,我们需要将GDIplus初始化,嗯相当于汽车启动的点火吧(装傻.jpg),如果不初始化的话,你将无法使用GDIplus!
我们新建一个名为 M_Basic_GDIplus.bas的模块,(M_是指模块的前缀)模块就相当于一个代码块,这里我们引用GDIplus的初始化API,这里对API不怎么理解童鞋可以理解为VB一种调用windows的功能的一种代码形式吧,举个例子啊:你就是去借你爸爸的工具(注意这里工具你是自身没有的(vb自身没有的功能)!而这里“爸爸的工具”是指windows的功能)。
这个就是GDIplus的初始化API——GdiplusStartup

要注意的是GdiplusStartupInput,GpStatus都是自定义的类型

还有个地方要吐槽的是:在任何模块中Public(公用)声明的任何API,类型,变量,函数……都可以在整个程序中可以使用的!
所以就有人将API声明这些的全部放在模块中,但是我个人我觉得这样不是很好,因为增加模块之间粘稠性,少一个模块这个程序就用不起了,对于小程序还好说,但是大型程序就惨了了,如果觉得麻烦就当我说多了吧!
那么我们声明好了这个初始化代码之后,我们要怎么应用他了?
这个还挺麻烦的……Orz
我们先建一个名为InitGDIPlusTo(专门初始化GDIplus)函数吧