当前位置: 首页 > 工具软件 > DarkGDK > 使用案例 >

DarkGDK库学习笔记(壹)

陆英毅
2023-12-01
   我有个习惯,很喜欢买书,但买了却很少有读完的~~~

    之前买过一本《C++图形处理与游戏编程基础》,一直没看~~~

    一个人在宁波的日子是很枯燥的,没什么激情,这个年纪,没激情通俗的讲就是身边没有妹子,因此在百无聊赖的情况下,开始在晚上研读这本书~~~


    首先,我认为,机械工业出版社人民邮电出版社出版的计算机方面的书籍很棒,很可惜,这本书是清华大学出版社的,我对清华大学出版社的印象不好,原因在于我在看陈皓酷壳的时候,点了个链接,发现一篇文章,讲清华大学出版社抄袭陈皓牛人《跟我一起makefile》一文~~~


    废话说到这里,开始整理我的学习笔记~~~

    这本书里介绍的开发游戏的程序基于一个叫“Dark GDK”的库文件,该库文件由英国The Game Creators软件公司开发。这个库文件将大量底层的东西进行封装,然后变成一系列简单的函数供人使用。在我看来,封装的东西对个人基础的提高没多大帮助,一个优秀的程序员,应该精通底层的东西,所以,个人还是很喜欢用C的,C++还没怎么学,写出的C++代码也很丑。但是,学些图形处理的东西,总没什么坏处,也希望对明年将成立的工作室有用~~~

    

    下面介绍包含在“DarkGDK.h”这个头文件里的一系列函数(二维)~~~

    1.dWaitKey()

    void型,空参,作用:遇到这个函数时,程序停下来,等待用户按任意键才继续执行下面的代码,调用"DarkGDK.h"写程序时,不会在程序执行完以后出现一个“请按任意键继续!”,如果没有dbWaitKey(),程序执行完后不会停留在黑框框,直接消失~~~

    在介绍下面的函数之前先介绍下屏幕坐标系统,这个时候就用到像素这个概念,我乡下人,一直对像素这个概念不大清楚,看了这书之后,应该算是明白了,计算机屏幕上的点称为像素,每个点都有颜色,在学计算机的人看来,这些点本质上就是一串由0和1组成的字符。调用“DarkGDK.h”后,出现的黑框框像素是640*480。屏幕坐标系统就是在这个黑框框里话一个二维坐标系,这个坐标系和我们熟知的笛卡尔坐标系略有区别,它的原点在最左上角,坐标是(0,0),原点垂直向下是Y轴,坐标值依次增大,原点垂直向左是X轴,坐标值依次增大。废话完毕~~~

    2.dbDot(int,int)

    void型,两个整形参数,前者表示在屏幕坐标系里的X值,后者表示在屏幕坐标系里的Y值,作用:在(X,Y)点处,画一个点~~~

    tips:参数必须是整形,传浮点型进去被截尾,就像宫刑一样残忍,屏幕坐标系统中,X,Y必须是整数~~~

    3.dbWait(int)

    void型,一个整形参数,表示等待时间,单位是毫秒,作用:程序在执行到这条代码的时候,会停留括号中的时间,比如dbWait(1000),表示等待一秒~~~推荐,黄义达《一秒的安慰》~~~

    4.dbLine(int,int,int,int)

    void型,四个整形参数,前两个表示一条线段的起点坐标,后两个表示终点坐标,作用:画一条线段~~~

    5.dbBox(int,int,int,int)

    void型,四个整形参数,前两个表示一个矩(第三声,高考的阴影,你妹的高考)形左上角的坐标,后两个表示右下角的坐标,作用:画一个填充矩(再次声明,第三声)形,所谓填充,就是画出来的矩形是有颜色的,默认为白色,后面会说明怎么改变矩形的填充色~~~

    6.dbCiircle(int,int,int)

    void型,三个整形参数(为毛都是整形,突然发现,都是以像素作单位的,因此都是整形(语重心长,意义深刻,鼓掌)),前两个表示一个圆的圆心坐标,最后一个表示半径,作用:画一个圆,不是填充圆,只有一个轮廓~~~

    7.dbEllipse(int,int,int,int)

    void型,四个整形参数,前两个表示椭圆的圆心坐标,第三个表示椭圆的X轴上的半径,第四个表示Y轴上的半径,作用:画一个椭圆,同样不是填充椭圆~~~

    

    OK,插播广告,因为提到椭圆了,今年4月,本着打酱油的心情,去浙大参加ACM,肚子里没什么货,但同去的有一组实力很强,有望获奖,组员由禽兽学长陈辉,禽兽学弟阿俊和禽兽学弟土木二组成,但是最后因为一道关于椭圆的题目和三等奖失之交臂,原因是应该定义成浮点型的数据他们定义成了整形~~~哈哈哈哈~~~尽情嘲笑~~~好冷的笑话~~~

    

    8.dbPrint(string)

    void型,一个字符串型,C++里有定义字符串类型,用起来很方便,不过还不太会用,作用:靠屏幕坐标系左上角输出一串字符,如果该语句之前有其他输出语句,就是那个怎么说,你们懂的,如果参数是个空串,输出一个空行~~~

    9.dbText(int,int,string)

    void型,前两个整形,后一个字符串,前两个整形指定了一个坐标,字符串的第一个字母的左上角在这个坐标上,作用:在指定位置输出字符串~~~

    10.dbCenterText(int,int,string)

    void型,前两个整形参数,最后一个字符串,前两个表示一个坐标,作用:以某坐标为中心输出一个字符串~~~

    11.dbSetWindowTitle(string)

    void型,作用:在黑框框的标题栏输出一串字符,和C语言的黑框框的标题栏不同,调用“DarkGDK.h”时,如果不用这个函数,标题栏是空的~~~

    12.dbScreenWidth()

    int型,空参,作用:返回黑框框(我不是粗人,习惯这么叫了)的宽度,以像素为单位~~~

    13.dbScreenHeight()

    int型,空参,作用:返回黑框框的高度~~~

    14.dbRND(int)

    int型,一个整形参数,作用:返回从0到参数范围内的一个随机数,参数也就是上限(一句废话),产生的是个伪随机数,下面具体说明~~~

    下面的说明是从书上摘的,从dbRND返回的并不是真正的随机数,而是所谓的伪随机数,伪随机数由一个公式生成,该公式必须用一个起始值来初始化。这个起始值就是所谓的种子值。如果公式总是使用同一个种子值,就会总是产生相同的数字序列。为了更改数字序列,必须在每次使用时提供一个不同的种子值。

    ps:种子是个邪恶的东西~~~

    ·15.dbRandomize(int)

    int型,一个整形参数,作用:更改dbRND的种子值,接受一个int实参作为dbRND的新种子值,但是实参要会变,因此要用到下面的函数~~~

    16.dbTimer()

    int型,空参,作用,以毫秒为单位返回计算机的内部系统时间~~~

    dbTimer()通常和dbRandomize(int)连用,dbRandomize(dbTimer()),这样来为dbRND提供可变的种子~~~

    

    欲知后事如何,且听下回分解~~~

    ps:最喜欢眼睛漂亮的妹纸~~~


 类似资料: