1、語言的發展 隨首電腦的普及,電腦語言也跟首一塊開始普及。在這之前電腦語言一直是科學家手中的神秘之物。它經過不斷的發展和進化才變成我們現在所看見的樣子,而在早期的時候,語言基本上都很復雜很難接受,語言的種類也很多,其中有相當一部分語言已經淘汰了,只有資深的程序員還能記得它們的名字。
好個時候機器也很差,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源代碼,我看了以後才發現原來自己是不會利用而已,因為那個游戲中使用的大多數語句都是我學過的。從那以後我就有一種茅塞頓開的感覺了,其實就是這樣,如果你有機會看看各大成名軟件的話,相信你就會有這種感覺,因為那裡面用的東西很可能你都學過。
想學好一門語言,應該掌握這門語言的語法以及整個語言部分,而不要在它的各種花花庫上動腦筋。側重點應該放在語言本身,研究如何對付各種問題、如何組建數據結構、如何實現某種算法等等,把這些東西搞好才是正題。最後才是研究庫中到底有什麼花花功能,那時你神通廣大,功能庫在你手底下玩得團團轉,那才是真本事呢。->