真的是纯纯的小白。
1.什么是C语言开发环境?
对于没接触过软件开发的我来说,提到“环境”一词,很容易联想到自然环境,比如空气好不好,风景是否优美。但对于程序来说,这个环境与自然环境根本没有关系。C语言开发环境主要包含三个部分:编辑环境,编译环境,运行环境。
编辑环境:写程序。这个时候电脑是根本不知道你在写什么的。甚至你在纸上写,这张纸也可以叫编辑环境。
编译环境:到这里就要让电脑理解你写的是什么了。就是把你写的东西转变成电脑能识别的东西。电脑是不认识什么字符和26个字母的,他只认识0、1二进制,这一步就是干这个的。
运行环境:就是这个东西电脑识别了之后,要运行出一个结果吧。运行环境包括硬件运行环境和软件运行环境。硬件运行环境就是你的程序在什么设备上执行。软件环境就是可执行程序在什么软件上运行,通常是操作系统(win,linux等)。
许多软件都同时支持这三种环境,我们就叫他集成开发环境,也就是IDE(integrated development environment)。
IDE的发展历史
在远古时代,编程可是一件苦差事。
首先,你需要打开文本编辑器,敲代码,然后关闭编辑器。
接着,要运行编译器,然后把错误记录在纸上。
然后再打开文本编辑器,寻找错误,修改。重复上述步骤。
程序员们不安现状,将其整合,并通过多年努力与竞争,才有了现在的众多IDE。
2.什么是GUI?
(1)在这之前,先了解下什么是C++:
我们中国人说汉语,但是当我们想和外国人交流的时候,他并不懂我们说的是什么。于是我们就使用英语与他进行交流,他就可以懂了。
类比一下,我们人类说的语言,电脑也不懂我们说的是什么,电脑能理解的只是一串0和1,这对人类来说实在是太难理解了。这时候的语言,就被称为第一代计算机语言,即0/1代码。这简直要把编程的人折磨死。于是人类发明了汇编语言,即第二代计算机语言。用一些简单的缩写单词来代表一些指令。如:用"ADD"代表加法操作指令,"SUB"代表减法操作指令,以及"INC"代表增加1,"DEC"代表减去1,"MOV"代表变量传递等等,再通过专门的软件,把这些缩写单词转化为0/1代码。这样就方便很多了。但是使用汇编语言,仍然需要自己去调用存储器来存储数据,这样就依赖于硬件,而每个硬件的特殊性导致了每开发一个硬件,就要写一套程序,代码冗长,兼容性差,后期维护困难。
由此,人们发明了第三代计算机语言。目标是:不依赖于硬件,可移植性好,而且要更接近人们能看懂的语言。1956年,世界上第一个高级编程语言FORTRAN。1972年,C语言诞生。1983年,改良版C语言,C++诞生。。。。。
C语言编译过程:先转化为汇编语言,再转化为0/1代码。
(2)C++能用来干什么?
C语言:操作系统底层、系统驱动、单片机、嵌入式方面等;
C++:网络游戏开发、音视频技术、Socket网络通信,系统,应用程序软件(例如wps,office)。
其实,很多大学生在大学期间接触的都是C或C++,但很多人都很纳闷,学了这么久的C++,写了半天程序,运行出的结果,就是个黑色的窗口,有个输入输出,就完了。好像是实现了一些功能,但是,也不好看,也不美观,而且根本不像是能拿出去给人用的样子。由此,便来到了,怎样使用C++,开发能让用户使用的,图形界面。
(3)GUI(Graphical User Interface)
指用图形方式显示的,计算机用户操作界面,允许用户使用键盘鼠标来进行操作,而不用像程序员一样,用命令行的形式。
C++标准中并没有包含GUI,这也使得C++开发图形化界面时需要使用第三方的库。但实际上,使用C++这个语言来开发图形界面,是很有优势的。因为C++即能提供极高的性能,又能提供良好的接口。小到平常使用的各类桌面软件,大到魔兽世界这样的游戏,都是C++擅长的。相比之下,C语言的性能也很高,但是封装太差;Java封装很好,但性能不适合做界面开发,更别谈大型游戏。C++的GUI库除了最为人所熟知的MFC,其实还有其它很多,下面挑几个看看。
i:MFC
MFC(Microsoft Foundation Classes),是微软公司提供的一个类库(class libraries),是微软专门为windows设计的一个用于开发图形用户界面的类库,效率较高,但大量的Windows API和消息机制使得其较难理解,不易用。
ii:QT
QT封装较好,易用且跨平台,但效率较低。
用 Qt 来开发 Windows 桌面程序有以下优点:
- 简单易学:Qt 封装的很好,几行代码就可以开发出一个简单的客户端,不需要了解 Windows API。
- 资料丰富:资料丰富能够成倍降低学习成本,否则你只能去看源码,关于 DirectUI、Htmlayout、aardio 的资料就很少。
- 漂亮的界面:Qt 很容易做出漂亮的界面和炫酷的动画,而 MFC、WTL、wxWidgets 比较麻烦。
- 独立安装:Qt 程序最终会编译为本地代码,不需要其他库的支撑,而 Java 要安装虚拟机,C# 要安装 .NET Framework。
- 跨平台:如果你的程序需要运行在多个平台下,同时又希望降低开发成本,Qt 几乎是必备的。
3.那什么是游戏引擎?irrlicht的本质到底是什么?
那么我就在下一节中了解一下游戏的发展史,从而就可以知道为什么要有游戏引擎,以及他在开发中到底扮演的是什么角色了。