電腦遊戲製作開發設計論壇 首頁 電腦遊戲製作開發設計論壇
任何可以在PC上跑的遊戲都可以討論,主要以遊戲之製作開發為主軸,希望讓台灣的遊戲人有個討論、交流、教學、經驗傳承的園地
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

Google
[C++][1]C/C++介紹

 
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念
上一篇主題 :: 下一篇主題  
發表人 內容
yag
Site Admin


註冊時間: 2007-05-02
文章: 684

2639.56 果凍幣

發表發表於: 2007-5-3, PM 3:15 星期四    文章主題: [C++][1]C/C++介紹 引言回覆

C跟C++分別是兩種程式語言,之所以常常寫在一起,是因為以C寫的程式用C++的編譯器(compiler)去編譯(compile)一樣行得通。

大致上來說,C++就是升級版的C,它跟C的最大不同,就在於它多了類別(class)這個東西,但實際上,類別跟C固有的結構(struct)也沒什麼差別,只差在其預設的存取模式不同(class是private而struct是public),主要是一種觀念上的差別,另外就是C++有多了一些C所沒有的函式。

所謂的編譯器(compiler),就是讓程式設計者把寫好的原始碼轉換成機械碼以製成執行檔的一種轉換程式,要寫C/C++程式,只要任一種文書編輯軟體都行,你也可以用微軟附的記事本來寫程式,寫出來的程式就叫做原始碼(source code),只要存成.cpp檔案就可以了。

之後你只要找到一種C++的compiler,就可以用它來把.cpp檔變成.exe執行檔,然後對著compile出來的執行檔點兩下滑鼠左鍵,它就會依照你在原始碼中所下的命令去執行它的任務。

至於類別跟結構,這個後面會說到,不用心急,只要知道C++中有這兩種資料型態就行了。

目前市面上所有在賣的大型單機或網路遊戲,絕大多數是用C++開發出來的,少部份是用VB.net、C#、Delphi、Java之類的開發,至於手機遊戲,很多是J2ME(Java的一個分支),好像也有一部份是C++,我不太清楚,至於小遊戲或網頁遊戲那就多了,Flash、Director、Virtools、PHP、ASP、Java、VB…一堆有的沒的語言跟工具。

總之,如果是想進遊戲公司寫單機或網路遊戲,學C++是不會有錯的。而之所以大型的遊戲都會用C++來寫的原因,是因為C++跟一般的高階語言比起來,更兼有了低階的特性。什麼是高階低階?越接近人類語言的,就被稱為越高階的語言,而越接近電腦的機械碼的,就被稱為越低階的語言,而上面說過的compiler,就是此兩種語言之間的翻譯軟體,經由它,讓我們可以用人類較容易看懂的C++程式碼來和電腦做溝通,指示電腦該做些什麼。

但是越高階的語言,對電腦來說越難看懂,即使經過compile之後,還是會有很多不理想的地方,所以在處理的效率上就會較差,對C++來說,因為它兼有低階的特性,所以自然處理的效率就會比較好一點,因此在大型的遊戲中才不得不使用C++來編程,要不然玩家玩起來就會lag到死,這就是目前市面上的遊戲普遍都是用C++編程的原因。

不過隨著硬體設備越來越高檔、越來越便宜,也隨著各種語言的歷代改進,現在有些語言也能讓電腦在處理大型遊戲時不至於過度緩慢,因此最近也有一些用VB.net或Java之類語言來編程的大型遊戲,只是不多罷了,畢竟很長一段時間內,大家都是用C/C++在寫遊戲,所以在這方面對遊戲的支援比較多,像DirectX、OpenGL之類的遊戲函式庫,就要以C++來編程會比較能夠發揮其效力。(VB.net雖然也能呼叫DirextX,不過功能上會有些限制在。)

除了語言上的差別外,實際上,compiler之間也有差別存在,同樣是C++語言,用A牌的compiler可以成功編譯,如果改用B牌的compiler可能就會出現一堆問題,剛說過,compiler就像翻譯軟體,你就想成明明都是英文,可是在A牌翻譯軟體可以找得到單字,或者可以翻成一篇看得懂的文章,但在B牌翻譯軟體就會變成查無此字,或者翻譯出來的文章跟本看不懂其意義,是一樣的道理。

雖然C++有所謂的標準C++,但是這個標準中,有些小地方的細節是允許compiler製造商自行設定的,而且每家製造商,都還會提供只有自己的compiler才有的功能,藉此吸引顧客,因此雖然同樣是C++的規則,但不同的compiler會提供不同的函式庫讓我們呼叫,所以在實際編程上,是有很大的差異的。

目前拿來做遊戲最常用的compiler自然是微軟提供的Visual C++(簡稱VC++),再來是Borland提供的Borland C++ Builder(簡稱BCB),這兩款IDE(整合開發環境)都是需要花錢買的,而免費的compiler中比較有名的,大概是Dev C++。

上面又有個新名詞,IDE,Integrated Development Evironment,也就是整合開發環境,其中包括文書處理環境、專案組態設定以及一堆有的沒的工具,還有最重要的,compiler,總之,就是一個專門讓你寫程式的軟體,一般來說,在Windows的環境下,很少看到單獨存在的compiler,多半都是包含compiler的IDE,要到了Linux或Unix的環境下才會看到像gcc這樣的compiler,但這已是題外話了,我們的重點是放在Windows遊戲設計。

當然如果有人對Linux遊戲開發有研究的,也歡迎您貢獻一些教學的文章與我們分享,我個人對這方面沒有研究,所以就不再多提了,免得誤人子弟。

經過以上的解說,初入門者應該能夠對寫遊戲要學什麼語言有個初步的概念吧?想進遊戲界的話,學C++就沒錯啦!


yag 在 2009-6-26, AM 10:13 星期五 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
s13579239
偶而上來逛逛的過客


註冊時間: 2007-12-01
文章: 12

0.00 果凍幣

發表發表於: 2008-1-19, AM 9:03 星期六    文章主題: 你寫的真清楚 引言回覆

這下我終於瞭了,等下學期的電腦課吧= =,我都不會網頁設計
回頂端
檢視會員個人資料 發送私人訊息
thisgo
稍嫌羞澀的路人


註冊時間: 2008-01-21
文章: 3

0.00 果凍幣

發表發表於: 2008-1-21, PM 10:38 星期一    文章主題: 引言回覆

我是c++的初學者,最近趁寒假有空找一些資料,
很幸運發現這論壇,我覺得你很用心,也謝謝你無形的幫忙,感謝Smile
回頂端
檢視會員個人資料 發送私人訊息
darknews
稍嫌羞澀的路人


註冊時間: 2009-01-19
文章: 2

11.24 果凍幣

發表發表於: 2009-1-19, PM 5:13 星期一    文章主題: 引言回覆

thisgo 寫到:
我是c++的初學者,最近趁寒假有空找一些資料,
很幸運發現這論壇,我覺得你很用心,也謝謝你無形的幫忙,感謝Smile


事隔相差了快一年了的我
Surprised 也是趁著有空的時候找了一些資料
回頂端
檢視會員個人資料 發送私人訊息
冰葉
稍嫌羞澀的路人


註冊時間: 2009-05-23
文章: 2

11.90 果凍幣

發表發表於: 2009-5-23, PM 3:31 星期六    文章主題: 引言回覆

thisgo 寫到:
我是c++的初學者,最近趁寒假有空找一些資料,
很幸運發現這論壇,我覺得你很用心,也謝謝你無形的幫忙,感謝Smile

我十分同意你的說法!!我近日也發現了這裡...就一個人來做做看吧...不過會很辛苦
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
happylin
略有貢獻的成員


註冊時間: 2007-07-26
文章: 70

127.34 果凍幣

發表發表於: 2009-5-26, PM 2:54 星期二    文章主題: 引言回覆

Dev C++ 只是一個IDE . 它沒有發展C/C++ compiler
他用的是windows 版的gun c++ 稱作mingw
請參考 http://www.mingw.org/

事實上個人覺得Dev C++這個IDE 並不是作的很棒
最近個人接觸了另一套IDE Eclipse 比起 Dev C++ 好太多了 .可以參考看看.

另外 C 跟C++ 的差別可是非常的大. 可不是單單多了class 這個東西
回頂端
檢視會員個人資料 發送私人訊息
vosunda
稍嫌羞澀的路人


註冊時間: 2009-06-25
文章: 1
來自: Taipei, Taiwan
7.81 果凍幣

發表發表於: 2009-6-26, AM 12:09 星期五    文章主題: Re: [C++][1]C/C++介紹 引言回覆

yag 寫到:
只差在其預設的存取模式不同(class是public而struct是private)

yag大可能打太快打反了 Smile

就C與C++的不同處來說,C++的確多了非常多C沒有的特性,但對於初學者來說最直觀的還是類別(class)的出現,畢竟在C語言中不使用這種語法,至於那些物件導向概念就...再來學習吧。 Very Happy

_________________
Oops! I have a big big bug!
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
yag
Site Admin


註冊時間: 2007-05-02
文章: 684

2639.56 果凍幣

發表發表於: 2009-6-26, AM 10:14 星期五    文章主題: Re: [C++][1]C/C++介紹 引言回覆

vosunda 寫到:
yag 寫到:
只差在其預設的存取模式不同(class是public而struct是private)

yag大可能打太快打反了 Smile

就C與C++的不同處來說,C++的確多了非常多C沒有的特性,但對於初學者來說最直觀的還是類別(class)的出現,畢竟在C語言中不使用這種語法,至於那些物件導向概念就...再來學習吧。 Very Happy

還真的打反了
沒想到過了那麼久才有人發現…XD
已修正
謝謝
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
idontknow
稍嫌羞澀的路人


註冊時間: 2009-08-19
文章: 1

7.52 果凍幣

發表發表於: 2009-8-19, PM 2:10 星期三    文章主題: 引言回覆

版主您好 :

最近在找 c++ 的教學網逛到這裡,
你的教學實在很棒很豐富,
自己是超級新手,
常常寫錯常常問別人也不好意思,
版主往後的教學可否新增一篇 " 如何 debug ? ".
感恩哦 !!
回頂端
檢視會員個人資料 發送私人訊息
yag
Site Admin


註冊時間: 2007-05-02
文章: 684

2639.56 果凍幣

發表發表於: 2009-8-19, PM 10:46 星期三    文章主題: 引言回覆

idontknow 寫到:
版主您好 :

最近在找 c++ 的教學網逛到這裡,
你的教學實在很棒很豐富,
自己是超級新手,
常常寫錯常常問別人也不好意思,
版主往後的教學可否新增一篇 " 如何 debug ? ".
感恩哦 !!

謝謝您的誇獎
不過debug的範圍太廣了
我一時也想不起來有什麼常見的bug可以解說的
或許你可以把你的錯誤訊息貼上來
我們一起來討論看看怎麼解決
應該也可以成為不錯的系列文章
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
shadow8173
稍嫌羞澀的路人


註冊時間: 2013-04-16
文章: 3
來自: 台灣
25.53 果凍幣

發表發表於: 2013-5-30, AM 12:47 星期四    文章主題: 引言回覆

我想抓程式來學
但是找不到中文版的C++
有沒有比較推薦的載點??
回頂端
檢視會員個人資料 發送私人訊息 雅虎訊息通
fire231
散播福音的祭司


註冊時間: 2007-09-15
文章: 152

322.55 果凍幣

發表發表於: 2013-6-3, AM 2:09 星期一    文章主題: 引言回覆

shadow8173 寫到:
我想抓程式來學
但是找不到中文版的C++
有沒有比較推薦的載點??



一般用免費的DEV C++
有中文的
就可以很好寫了
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念 所有的時間均為 台灣時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
可以 在這個版面附加檔案
可以 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作