作者tropical72 (藍影)
看板C_and_CPP
標題Re: [問題] 遊戲程式
時間Sun Dec 11 02:36:12 2011
把以前寫 game 的心得放一點上來,原文只摘錄重要的四行作引述。
※ 引述《winston1215 (Winston)》之銘言:
學了半個學期的c++,大概學完了迴圈、陣列、pointer.....等基本技巧
如果這學期只學到這裡的話,這堂課只教了「包著 C++ 的 C」,
大概只講了三分之一,並沒講到 C++ 後半段 -
類別與物件導向 (另一個三分之一) 、
STL 與 Container (另一個三分之一) 。
如果真的只教這樣的話,其實和用 C 語言寫遊戲沒兩樣。
我想要在遊戲中放入影音檔該去哪查詢?
方法一 : 建立 .avi , 調用 AVIFILE 系列 api, http://0rz.tw/hnTbO
方法二 : 調用 DirectX / OpenGL 函式庫 (太難,建議不要走這條)
方法三 : 建立 .avi , 調用 MCI 系列 api,http://0rz.tw/a4E1j
建議走方法三
想要把舊的畫面消失掉該如何做(據說是include<windows.h>)
想做遊戲片頭的動畫該如何處理?
同上
---
先提醒一件事,在網路上不難找到
早期的程式碼,裡面含有
graphics.h、dos.h,
建議不要再參考它們,這份程式碼所使用的年代已久,除非,你老師用的 compiler
是 Trubo C(++) 2.0 / 3.1, 那就直接拿它們當參考無所謂。
但有個例外,
若是 VC compiler,有個偷機的方式,
有一票人提供了在 windows 作業系統上,實作 turbo C 之 graphic.h
這種東西也已被統稱為
「控制台增強庫」,妙的是這種看似已落後的技術,
卻不只一人在維護、開發、應用 ,而有在開發的作者也不只一位。
( 記得第一開開發的原因是學生剛學完 C 就學圖形學,沒時間學 Win32 )
更妙的是,還有專門的論壇在討論這部份之技巧與訊息
easyx -
http://www.easyx.cn/
easy 吧 -
http://tieba.baidu.com/f?kw=easyx
對於這份 final project 我想直接抓這套下來用是最簡便的。
同時 easyx 裡面也提供一些遊戲範例原始碼出來。
出來效果怎樣?直接看其中投入這行列作者之成品圖最明瞭
http://0rz.tw/T69Dl
( 我沒叫你直接 copy 他的東西下來改,至少禮貌性留個言給他得其允許 )
---
若不想用現有的控制台增強庫,
很遺憾一件事 ,在這學期結束之前, final project 照你的要求大概完成不了,
我想大概還要再多學 Win32 程式設計,C++ 實力夠的話可以直接跳 MFC / BCB,
或你有較輕型、方便、可攜的選擇 - Win32++ (library)。
Win32、Win32++ 本身據有 C 或 C++ 底子就可進入,
主要熟悉視窗程式設計之流程與背景知識。
而 MFC / BCB , 除了在學視窗程式設計流程、背景與知識外,
C++ 在類別與物件導向那裡至少要熟
(STL 與 Container 我覺得較少用來寫 GUI 之技巧),進入才可應用自如。
---
所以我建議直接從 console 系列 api 直接著手,但 console 系列之 function
真的是多到讓人傻眼,會讓人不知怎麼挑,看一下 msdn 裡面提供的 function 有哪些
http://0rz.tw/mFiGU
幸運的是,easyx 產生解決了這部份問題,去觀查它每個 function 之 source code,
學久了也知道 Console Functions 怎麼用。
再補一點,game 做得好的話,大多會扯到 multi-thread
(keyword : _beginthreadex,_endthreadex )
幸運的是,Microsoft 竟巧妙的為初學者開了一扇後門,避開了 multi-thread 之使用,
它為 console functions 開了三份 call-back function,
範例碼
http://ppt.cc/;FT!
----
最後,若 final project 並沒要求要為遊戲設計成物件方式,
直接拿找得到的 C 語言範例作修改即可;
如果有要求設計成物件方式進行的話 (看原 po 沒提到這),
是該再找其他 C++ 物件設計成遊戲之範例,
或,去砍本 Design Pattern 回來看吧 (只怕時間沒那麼多)!!
一點意見,供參考。
--
No matter how gifted you are,
alone, can not change the world.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.78.41
推 pichubaby:強者 12/11 04:39
推 Yshuan:推 竟然有這種東西 12/11 09:20
推 siriusu:push 12/11 11:49
→ LoveBeef:有沒有在非微軟下的方法? 12/11 12:26
→ diabloevagto:樓上如果是指gui的話,非ms的也有很多啊 12/11 12:29
推 cory8249:專業~ 推 最近剛好也要寫這類的東西 @@"~ 12/11 12:59
推 sand1050:推 12/11 15:19
推 VictorTom:推:) 12/12 00:01
推 xatier:T大必推! 12/13 02:23