|
電腦遊戲製作開發設計論壇 任何可以在PC上跑的遊戲都可以討論,主要以遊戲之製作開發為主軸,希望讓台灣的遊戲人有個討論、交流、教學、經驗傳承的園地
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
fire231 散播福音的祭司
註冊時間: 2007-09-15 文章: 152
322.55 果凍幣
|
發表於: 2007-10-8, PM 9:55 星期一 文章主題: 最近有個程式寫了很久~不過實在有點迷惘... |
|
|
C++寫了3個禮拜了吧
1個小型的RPG遊戲
雖然沒用到win32API
不過我很想做出有選單的樣子
但是我唯一想到最簡單的方式就是使用goto來跳躍各個選項
到現在也寫了1萬多行了
雖然沒有啥大問題~不過聽說很多人對於goto抱持反對意見
有點迷惘...
而我又不知道如何修改
因為程式碼太多PO不上來~
b122894017@yahoo.com.tw
我的即時~希望有人能幫我看1下我的程式碼~順便給點意見
或是有人可以留下MSN或即時~可以讓我詢問
謝謝
另外
還有個問題~啥時要開始學WIN32API呢?~感覺C++不是很好用
在要寫出1個程式來講~因為C++是dos的模式
yag補充:fire231的程式碼下載(請按右鍵點選另存目標)
這個程式還沒完成~大約只完成了1半左右吧= =...
fire231 在 2007-10-9, PM 6:15 星期二 作了第 1 次修改 |
|
回頂端 |
|
|
lsk 喜歡上這裡的冒險者
註冊時間: 2007-06-20 文章: 93
20.59 果凍幣
|
發表於: 2007-10-9, AM 3:20 星期二 文章主題: Re: 最近有個程式寫了很久~不過實在有點迷惘... |
|
|
經過了那麼多年的被討厭,goto始終沒有被c++的compiler踢出去,表示它一定有它存在的價值。現在你剛剛開始學c++,如果所有人都跟你說「用goto一定是不好的!」那你可能就一輩子不會再用他,而且以後你還會跟其他的新手說:用goto是不好的。這樣是不是因此會錯過些什麼?我也不知道。不過,我的看法是,不論這個大家對這個工具的評價是什麼,學起來,然後用自己的經驗去判斷,在對的地方用它,就好了。"能配合團体"和"一味的跟隨主流"是兩碼子事,要有獨立思考的能力和精神才重要。最怕的就是人家說一就是一、說藍就不能綠,思想就很容易被誤導。
大家不愛goto就是因為它很容易讓程式碼不好讀。那你把它寫得很好讀,不就得了?舉例來說,我在wii官方給的範例碼裡面就有看到有人goto,而它應用的他方正是你想做的選單,寫得很簡單明瞭。當然,要怎麼到"很好讀"的地步,就要靠經驗慢慢累積了。
c++不是不好用,只是你還沒學到他好用的地方 要做視窗軟體真的不太可能一步登天的,當然你是可以先用VB或是用Visual C++玩玩看啦.... 沒有基本的概念,要讀視窗的程式真的是很硬很硬很硬喔~ |
|
回頂端 |
|
|
happylin 略有貢獻的成員
註冊時間: 2007-07-26 文章: 70
127.34 果凍幣
|
發表於: 2007-10-9, AM 9:19 星期二 文章主題: |
|
|
哇寫了一萬多行了. 真是不簡單 .. .
不知道你是怎麼設計的阿...
一萬多行要管理也是很麻煩的事阿 |
|
回頂端 |
|
|
babu61509 散播福音的祭司
註冊時間: 2007-08-26 文章: 142
681.01 果凍幣
|
發表於: 2007-10-9, AM 9:21 星期二 文章主題: |
|
|
想學建立WIN的API...
我覺得可以先去找本 C#的書 或是 C++/CLI 的書來看 (當然裡面要有能用程式碼寫出窗的教學,不是用視覺式的喔![視覺式就是表單出來給你拉那種])
這些書就會講到一些視窗運作的基礎.
等寫一陣子以後再去找 C++ API的書
用API建立視窗的步驟就比較多了...
從簡單(會用,了解基礎運作)到難(一步一步建立視窗)
學起來應該比較容易吧.
當然,你想直接挑戰用API建立也是OK的啦... _________________ 已經畢業了!! |
|
回頂端 |
|
|
還是零分 散播福音的祭司
註冊時間: 2007-09-19 文章: 164
653.83 果凍幣
|
發表於: 2007-10-9, PM 5:56 星期二 文章主題: |
|
|
dos視窗?
那畫面是256色囉?期待喔
至於winAPI的話.學會c++之後就可以學學看了 |
|
回頂端 |
|
|
fire231 散播福音的祭司
註冊時間: 2007-09-15 文章: 152
322.55 果凍幣
|
發表於: 2007-10-9, PM 6:05 星期二 文章主題: |
|
|
這個..
純文字說= =
我不會將圖片加入程式裡面..(就算會我也沒有圖可以加阿= =) |
|
回頂端 |
|
|
還是零分 散播福音的祭司
註冊時間: 2007-09-19 文章: 164
653.83 果凍幣
|
發表於: 2007-10-9, PM 7:33 星期二 文章主題: |
|
|
啊?
嗯...
喔!
至少檔案會很小! |
|
回頂端 |
|
|
fire231 散播福音的祭司
註冊時間: 2007-09-15 文章: 152
322.55 果凍幣
|
發表於: 2007-10-9, PM 9:07 星期二 文章主題: |
|
|
你看看我上面的程式再說吧= =
經過yag大大的指點
其中有好多好多地方可以改進~~
本來寫這個遊戲只是想讓自己熟析一下C++的程式寫法= =
不過看來努力的地方還很多阿~ |
|
回頂端 |
|
|
vamper 對這略感興趣的新人
註冊時間: 2007-06-23 文章: 29 來自: 台灣 18.82 果凍幣
|
發表於: 2007-10-9, PM 9:41 星期二 文章主題: 沒有主題 |
|
|
既然作者提出來要抓出缺點,在下我不客氣啦!請沈住氣呀
大約看了一下,雖說一萬行,可惜只重「量」,不重「質」。
缺點:
1.程式碼重複性太多,沒有物件化。
2.goto太多。
3.一個函式最好別超過兩頁以上。
4.多讀資料結構吧!
5.一堆無意義的變數。
6.請多認識C++吧!會幫助你省很多事情。
7.還有軟體工程的問題。
缺點說明:
1.沒有彈性!沒有聚合性!請學一下物件導向吧~
2.goto的缺點很多,光是多一個goto要多認識一個空間名稱,
說明文件會寫到死,因為有一堆函式名稱和類別名稱,還有UML....等。
如果你想跟別人合作寫遊戲,別用吧!只有一種狀況會用,跟break有關。
3.跟第一點有關連,也為了看程式碼方便,而少用「斷點」。
4.你的內功不足,一些程式段很沒效率。(下面有範例)
5.HP10 ? HP50 ?..原來是物品呀!請善用struct,
光是這個,對你的資料流讀寫入的工作,減少許多負擔。
6.連struct都不用的話,enum....我看連這也不知道吧?
7.這我不談,請先把內功練好,再來看軟工。
///// 以下是我的建議 /////////////////
我建議你先別學Win32API or DirectX,也別摸什麼視窗。
那些都是工具,看看說明文件就知道怎用了。
先把內功練好,在好好用工具。
dos?你說的是console吧!我知道有一本書,
就是在console平台上寫遊戲的。(國外網站是五星評價)
不過.....是原文書。想要翻譯成中文的話,不可能!因為沒有人翻譯。
我好像沒看到指標喔?(雖然陣列跟指標有關)
我在某一篇文章看到,有人寫程式都不用指標的,搞的整個編程風格亂透了。
我當時真是佩服他,不用指標能寫出大型軟體。
最後,好好加油吧!在這論壇你最認真想學的,(除了壇主)
我喜歡這種人。(不是那種「喜歡」喔!)
以下是程式碼改進的地方:
代碼: |
#include "stdafx.h"
enum enItemType
{
HP10 = 0 ,
HP50 ,
HP100
};//名稱就依你的意思
struct stItemAtt
{
char *name ;
int hp ;
int mp ;
};//道具的基本資料
stItemAtt item[3] ;
short map[10][10]={0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,3,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
2,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,1,0,0,0,0};
char *graph[6] = { "□" , "○" , "洞" , "塔" , " ", "村" } ;
int _tmain(int argc, _TCHAR* argv[])
{
///////// 關於繪製地圖 ////////////////
int x , y ;
for(y=0;y<10;y++)
{
for(x=0;x<10;x++)
{
cout << graph[ map[y][x] ] ;
}
cout << endl;
}
//// 關於資料方面 /////////////////
item[HP10].name = "補血草" ;
item[HP10].hp = 10 ;
item[HP10].mp = 0 ;
item[HP50].name = "補血粉" ;
item[HP50].hp = 50 ;
item[HP50].mp = 0 ;
item[HP100].name = "補血丸" ;
item[HP100].hp = 10 ;
item[HP100].mp = 0 ;
} |
|
|
回頂端 |
|
|
fire231 散播福音的祭司
註冊時間: 2007-09-15 文章: 152
322.55 果凍幣
|
發表於: 2007-10-9, PM 9:50 星期二 文章主題: Re: 沒有主題 |
|
|
QQ~當初來這邊~就是想要學整個程式設計~也是yag大大推薦我來的
我當初是想要用C++寫
但是我寫了後才懂得如何使用struct......
至於大大說的enum~我就不知道是啥東西了
還有指標= =~我也是之後才學會使用的
這程式是我邊學邊拿來練習用的= =..
yag大大有提醒幾樣東西
例如函式可以分出去~不用寫在主程式 再用檔頭加進去就行了
還有重複的敘述太多...等等
簡單的來說~如果要修整這個程式
那幾乎就是要全部重寫了= =...
這1萬多行的程式~基本上用的語法都是土法煉鋼= =~~
沒啥快速的捷徑(畢竟第1次寫..)~所以就跟大大說的一樣
幾乎是用量疊起來的= =..
這個...彈性根聚合性是啥?
另外關於無意義的變數
你是指哪邊= =?
是指那些不林值嗎? |
|
回頂端 |
|
|
vamper 對這略感興趣的新人
註冊時間: 2007-06-23 文章: 29 來自: 台灣 18.82 果凍幣
|
發表於: 2007-10-9, PM 11:06 星期二 文章主題: |
|
|
先說一下指標好用處吧!
我說一個就行了:優化。
代碼: |
const int x = 16 ; //最好2的次方
const int y = 16 ;
int map[x][y]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,
0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,6,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,
2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,
0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,6,
0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,6,
0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,6,
0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,6,
0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,6,
0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,6,
0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,6};
//最後一的字串,存放「斷行」
char *graph[7] = { "□" , "○" , "洞" , "塔" , " ", "村" , "\n" } ;
int _tmain(int argc, _TCHAR* argv[])
{
///////// 關於繪製地圖 ////////////////
int *pptr = NULL ;
int i = 0;
for ( pptr = &map[0][0] ; pptr <= &map[x - 1][y - 1] ; ++pptr , i++ )
{
//少了之前寫的if( x % ....... )。%比/的運算子更花時間去運作
cout << graph[*(pptr)] ;
}
//// 關於資料方面(不必要的變數的說明,是在此) /////////////////
item[HP10].name = "補血草" ;
item[HP10].hp = 10 ;
item[HP10].mp = 0 ;
item[HP50].name = "補血粉" ;
item[HP50].hp = 50 ;
item[HP50].mp = 0 ;
item[HP100].name = "補血丸" ;
item[HP100].hp = 10 ;
item[HP100].mp = 0 ;
//這樣資料流方面,抓取資料,不用一個一個來,還有其他用途,不懂的話...自己想吧!
//等你到了某種程度,就豁然開朗
} |
簡單的說,
彈性:需求改變時,功能上(程式碼)能容易變更。
聚合:增加一個需求,整個程式碼的變更程度量。
還不懂的話,總有一天你會知道的。(等到你寫大型軟體時) |
|
回頂端 |
|
|
zwshen 對這略感興趣的新人
註冊時間: 2008-03-11 文章: 22 來自: Taiwan 0.00 果凍幣
|
發表於: 2008-3-11, PM 9:46 星期二 文章主題: 有趣的遊戲 |
|
|
fire231 您好
我有下載你這個RPG遊戲的程式碼下來看,雖然我沒有實際去執行,
可是的確能感覺得出來,您很有心在創造一個有趣的RPG game,還是可以說是單機版的mud遊戲
希望能看到這個遊戲完成後的樣子.. |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 可以 在這個版面附加檔案 您 可以 在這個版面下載檔案
|
|