掌握开发的武器-语言
清醒时做事,糊涂时读书,大怒时睡觉,无聊时关注图老师为大家准备的精彩内容。下面为大家推荐掌握开发的武器-语言,无聊中的都看过来。
随首电脑的普及,电脑语言也跟首一块开始普及。在这之前电脑语言一直是科学家手中的神秘之物。它经过不断的发展和进化才变成我们现在所看见的样子,而在早期的时候,语言基本上都很复杂很难接受,语言的种类也很多,其中有相当一部分语言已经淘汰了,只有资深的程序员还能记得它们的名字。
好个时候机器也很差,CPU、内存、硬盘等都差得很,跟现在是没法比了,编程序也没有现在舒服,还没有软驱的时候编程人员用的是穿孔纸带,机器大的象立柜。可能有的人听着都新鲜,其实那就是电脑以前的样子,连游戏都没有。后来出现了苹果机和8086以后PC市场才开始火起来,随着普及量的增多PC的用途也越来越广,人们开始在上面制作各种用途软件,这极大推动了电脑语言的发展。产生了汇编语言、C语言Basic语言、数据库语言等很多流行的语言,它们基本上解决了人们在各行业中的需要。
2、了解语言的特性
每种语言都有它的特性,了解它的特性知道它的优缺点是非常必要的。盲目地选择一种语言或追求一些流行的语言都不是什么好事。尤其容易把业余程序员给害了,现在很多人就是这样盲目地学VB或上些速成班,然后再用微软的控件东拼西凑的编些软件就以为成了高手了,其实他把编程序的花拳锈腿都学来了,而把最重要的编程底子给忽略了。我在这里忠心地奉劝朋友们,请不要这样干,要想在这方面有些作为的人最好别在花拳锈腿上浪费青春。
这次我准备谈论一下流行的VB和VC,分析一下它们的特性,这对开发游戏是很有好处的。首先我们来看看VB。VB是微软开发的可视化Basic语言,功能很强但速度不是很快,尤其在进行大量的运算时就更显得非常力不从心了,但是用它开发界面或干一些不是很深入操作系统的工作时则非常方面和快捷,中;另外它的扩展性很强,可以调用Win32API和大多数的动态链按库。在编游戏方面微软提供了很多的动态链接库,调用也很方面,所以也不错。尤其是DirectX7.0带的Dx7vb.dll对VB编游戏来讲更是如虎添翼,只要避免用VB即时渲染游戏效果,用DirectX7.0编游戏是很方面的。而且调试也很方便,在DirectX7.0之前提供的库调试时很容易出错或导致非法操作,所以本人强烈建议使用DirectX7.0。
VB提供对象化编程,但实现得不如VC,不过毕竟还提供了这个特性,在编写程序时还是挺不错的。虽然VB通常不能提供象VC那样深入的操作,但是通过各种库或控件也能凑合了,只要你编的程序不是需要进行大量的运算,用VB就很合适。通常一个大型程序都是用VB、VC等语言混编的,比如开发一个DVD播放器,用VB可以构造界面和文体程序框架,解码器则可以用VC或汇编编写成动态链接库供VB调用。这样就利用上了两门语言的优点,快速高效地开发了软件。
VC则是中庸的语言,说高吧不算高,说低吧它还什么都能够做。不管你编什么用它都能较好地完成任务。速度很快,但不是最快。功能很好,但不是最好。代码好写,但不是最好写也不最难写。所以我说它是中庸的语言,在世界上C用得是最广的,其实就是因为它有这个特性。VC和ANSIC 有一些不同,但毕竟也是C 类的。现在国际上绝大多数的开发平台提供的都是C或C ,所以有的人提出C语言应该是程序员必会的。话虽然是这么说,但实际上光学会VC你还是什么也编不了,还得花很长时间去研读Win32API、DirectX、GDI、COM、OLE、DDE、MFC等很多Windows上的东西。
3、对象化编程浅谈
要谈对象化编程,那怎么也得提一下以前的编程方式。在刚有语言的时代,编程没有今天的那么多说法。那时的编程概念很简单,只要机器能执行就可以了,要想编出优秀的程序,那就看谁写的程序能占内存少、速度快了。这也就造成了写程序变得很不规范,因为程序员在优化一个程序时往往把它编的面目全非和极极晦涩懂,程序里面的代码跳转来跳去的乱得一团糟,只有他们自己才能看得懂。后来由于社会需求越来越大,程序员才发现这样的代码很不适应,比如你给某飞机场写了一个软件,来控制飞机的起降、航班、机票等事。突然有一天机场老板电话找你说你的软件出了故障,你可能就糟了,因为你知道那里面的代码已经乱得不能改了。所以这种落后的编程方式在软件的维护上就会显得很不好。在这以后,结构化编程方式产生了,它可以把常用的程序写成函数来使用,这样程序程序就变成一堆函数构成的身体了,而且把公用或常用的东西都写成函数块了,所以它可以简化程序和减少出错的几率。到了后来人们又发现这种结构也不能适应需要了,因为现在写的程序比以前大得多,这样对象化编程又出现了。对象化编程所不同的是它把结构化编程的思路变得更清晰了,它不但保留了所有结构化编程的特性,而且还增加了类的概念。
所谓对象化编程,就是将编程目标看成是一个对象,然后将这个对象尽量的描述清楚。比如将一个手榴弹当作一个对象,那么你就可以这样描述:
1.它的样子象个锤子。
2.拉一下弦过几秒就得爆炸。
3.泡水里要可能就不能响了。
4.离近了,它可以把人炸死。
这样把事物封成对象,就可以只让人看见对象的特性。而看不见它内部是如何实现的了。从使用角度上来讲,它可以当作是一个零件来组装你的程序,而你并不需要知道它内部是如何实现的。从制作对象的角度上来讲,它实现了数据的封装和隐藏,这样外界在使用它的时候不会把里面的数据给破坏掉。象上面提到的手榴弹对象、士兵对象、坦克对象等然后就可以把它们组装到一块做成一个游戏。所以开发大型程序时对象化编程的优点就很突出了。
其实对象化编程很早以前就有了,最早的时候它只不过是个带类的C,后来经过一步步完善才发展成现在的对象化编程。在没有对象化编程前,一直是结构化编程,这种编程方式也不错,只不过概念上比对象化编程差了些。对象化编程可以让你把编程时的思维理的更清晰一点,而从它们的功能角度上来讲,就比不出什么了。这两种编程方式只有在构造一个大型的程序时才能看出来,对象化编程则占有很大优势,而结构化编程则容易把事情搞乱。在编游戏的时候,尤其是在编大型游戏的时候,用对象化编程就更容易一些。
4、如何掌握一门语言
要想掌握一门语言,必须得抓住这门语言最实质的东西,比如说学C语言,如果你觉得指针都分看懂你就不学,那你就错了。新概念谁都不好接受,但很多精华的部分就这上面,如果你不学指针部分那还不如学BASIC语言呢,因为由于你的抵触情绪,你已经把C语言当作BASIC语言来用了。这样的话C的精髓你就根本掌握不了,你不但要学会这门语言所有内容,而且还要会将它们用到各个能用的地方上才行。编程序中很重要的一条就是会用,学完了用不上可不行。记得我初中学BASIC时,就有一种感觉,觉得所学的语句有什么用呢?能编什么呢?总觉得没有。后来我买了一本BASIC的书,上面有一个小游戏BASIC源代码,我看了以后才发现原来自己是不会利用而已,因为那个游戏中使用的大多数语句都是我学过的。从那以后我就有一种茅塞顿开的感觉了,其实就是这样,如果你有机会看看各大成名软件的话,相信你就会有这种感觉,因为那里面用的东西很可能你都学过。
想学好一门语言,应该掌握这门语言的语法以及整个语言部分,而不要在它的各种花花库上动脑筋。侧重点应该放在语言本身,研究如何对付各种问题、如何组建数据结构、如何实现某种算法等等,把这些东西搞好才是正题。最后才是研究库中到底有什么花花功能,那时你神通广大,功能库在你手底下玩得团团转,那才是真本事呢。->