全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:4117
推到 Plurk!
推到 Facebook!

一般 RPG Game 地圖是怎麼產生的?

尚未結案
zzz
一般會員


發表:7
回覆:6
積分:2
註冊:2003-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-19 17:16:55 IP:61.219.xxx.xxx 未訂閱
小弟買了一本書有提到一些 RPG Game 地圖的產生方法, 可是寫的有一段沒一段的, 實在看不懂... 例如我畫了三張 BMP (10 * 10) 的圖, 1.BMP (草地) 2.BMP (高山) 3.BMP (河流) 我想在 300 * 300 的視窗中 SHOW 出地圖, 請問各位高手, 一般 Game 是如何撰寫? 謝謝!!
brucetsao
一般會員


發表:1
回覆:33
積分:11
註冊:2002-09-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-23 23:24:23 IP:220.130.xxx.xxx 未訂閱
請至博碩文化股份有限公司 http://www.drmaster.com.tw/ 他出了一系列的書 看完再問問題 PG20137 2D/3D RPG角色扮演遊戲程式設計-使用Direct X 本書要帶領讀者設計2D/3D RPG遊戲,從遊戲的故事架構,人物設計,場景設計等,以DirectX為工具,由程式基礎為讀者奠基,一步一步開發出屬於自己的RPG遊戲!本書亦包括如何設計網路多人線上RPG,讓讀者的遊戲更添多人互動的樂趣!第一部份:「角色扮演遊戲的簡介」,主要在描述角色扮演遊戲的本質及基本操作方式。 第二部份:「角色扮演遊戲的設計」,討論遊戲設計的主題,並協助讀者撰寫遊戲的故事。 第三部份:「程式設計的基礎」,這是開始暖身的地方。這個部份會告訴讀者使用C 的基本概念及在遊戲專案中運用DirectX的方法。 第四部份:「角色扮演遊戲的程式設計」,其中包含的是與RPG相關的遊戲程式。 第五部份:「角色扮演遊戲的完結篇」,會協助讀者包裝遊戲專案,學到如何推廣、行銷與出版自己的遊戲軟體。 第六部份:「附錄」,包含書中提到的程式及詞彙整理,教讀者利用線上資源作為參考。 定價 720 元 特惠價 576 元 PG20133 J2ME MIDP手機遊戲程式設計 目前手機是世界上普及度最高的資訊產品,幾乎是人手一台了!除了基本的通訊功能之外,作為每一個人的隨身良伴,排遣無聊時光自然是手機必備的功能。J2ME的出現為原本冰冷的科技產品,增添了更多的聲光娛樂效果,也帶來了更多的歡樂時刻。 本書為有志於手機遊戲程式開發的讀者,提供了最佳的學習途徑,透過各種遊戲類型的設計方式介紹,深入淺出解說J2ME手機程式開發過程,使讀者輕鬆上手。 本書完整介紹J2ME於遊戲程式開發的要訣,內容包括J2ME基礎知識、手機程式設計方法、各類型遊戲設計技巧和應用實例分析。全書詳細地介紹了J2ME程式設計原理和方法,並透過詳實的範例,為讀者解說遊戲程式開發過程所需要注意的地方。 定價 490 元 特惠價 392 元 PG20131 AVG冒險型遊戲程式設計--Visual C 完整實例與經驗分享 本書針對冒險型遊戲(AVG),從遊戲企劃與設計著手介紹,然後再以VC 為實作開發工具,完整詳實地指導讀者開發一套高水準的冒險型遊戲。 書中著重的不是華麗的演出或新技術的說明,而是務實而仔細地檢視冒險遊戲最「基本」的本質思維與邏輯部份。再者,書中許多程式的觀念與技巧內容也適用於遊戲以外的程式設計,這些技術都是作者經驗累積的成果,不是一般「入門書」會提供的,書中許多內容與觀念都是想進階與提升技術者所需的知識,適用的對象不僅是想要開發冒險型遊戲的讀者,也可當作是想要以「遊戲」為題材來當作學習程式設計的導引。●冒險遊戲製作的從零開始介紹 ●企劃的寫法與讀法說明 ●製作遊戲需要些什麼 ●教您建立一套專屬的腳本指令 ●製作腳本讀取與轉換程式的方法完整說明 ●以Visual C 建立類別庫及製作遊戲系統 ●製作遊戲的技巧 ●設計與編寫劇情腳本的技巧 定價 490 元 特惠價 392 元 PG20114 Direct X 特效遊戲程式設計 ■學習DirectX 2D, 3D遊戲程式設計的完整參考書!! 這本厚達一千頁的書讓您的遊戲程式進入更高層級,進入DirectX 2D、3D的完整觀念與程式設計技巧大探索。 ■本書採用Visual C 編輯程式 ■只要學會這本書的技巧,您很快地就可以駕輕就熟。不論您是有豐富經驗的程式設計師嗎或是想進入創作遊戲程式設計的領域的人,本書將帶領您從原理到程式技巧完整學習。 本書從Windows程式設計的觀念開頭,然後進入DirectX敘述整個關於2D特效的部份;並會告訴您如何利用3D顯示卡,做出水、火、雲、轉移與影像扭曲…等等特效。接著還有3D特效內容,從粒子系統,爆破、水體、魔咒…這類酷炫特效所需的一切。 ■本書採用Visual C 程式編輯 定價 720 元 特惠價 576 元 PG20104 Delphi 遊戲程式設計—40個精選專題實作 本書以專題的方式來介紹各種電玩遊戲的程式設計技巧,書中共分成「繪圖」篇、「人工智慧」篇和「簡易工具」篇40個不同的專題討論,並以Delphi為實作的程式,讀者可從中學到不同類型電玩遊戲的設計思維與技巧。 書中每個專題都有詳細說明設計的思維與程式設計時的方法,每個專題都以Delphi實作完整的範例程式及完成的執行檔,並隨附於CD中,方便讀者學習與取用。 ●本書以專題的方式來介紹各種電玩遊戲的程式設計技巧 ●以Delphi為實作的程式,可從中學到不同類型電玩遊戲的設計思維與技巧 ●書中共分成「繪圖」篇、「人工智慧」篇和「簡易工具」篇40個專題討論 >>繪圖篇 ●可在背景底下移動的ICON●由小而大的圖案畫世界●圖案的重疊與多重圖像 ●大型圖像的4個方向捲動●複合圖樣的時間差移動●向真正的簡易子畫面挑戰●星星的誕生與殞落●多重捲動●可大可小可隨處移動的聚光燈處理●自動捲動與簡易子畫面●子畫面中的優先順序●各種畫面化妝特效顯示●各種畫面卸妝特效●各種畫面切換的化妝法●熱氣飄浮的畫面●馬賽克處理●碰撞檢查與事後處理●線條光線的威力●閃電●對應於大畫面的大閃電●立體迷宮●殘留影像效果●行動的紀錄與重現●XOR的攻擊效果●數字鐘●Image List的實力與用法 >>小型人工智慧篇 ●殘留的軌跡是拋物線●殘留的軌跡是正弦曲線●殘留的軌跡是鐘擺線●殘留的軌跡是圓形運動●白點是目標●人處無害的獵點●點的生存競爭●RPG中的敵人的出現時機●半自動製作迷宮●不可思議的房間與迷宮●在迷宮中追趕對手●與商店老闆拼智慧 >>簡易工具篇 ●點陣圖編輯器的世界●動畫檢查器 定價 580 元 特惠價 464 元 PG20102 專業級遊戲程式設計-完整實例與經驗分享 本書作者特別針對遊戲程式所需要的特有思維與技術,結合本身經驗將這些零散的資料整理成了這本書,期許能對遊戲開發的入門者有所助益。本書以Visual C 配合MFC、DirectDraw、DirectSound等設計專業級的遊戲軟體為介紹內容,從製作遊戲雛型開始說明,由淺入深,加入圖型的特效處理等;然後針對像RPG、卡片遊戲等主題分別進行重點介紹,接著說明如何並把MCI、WAVE、DirectSound等音源音效整合到遊戲中,並且還介紹DirectDraw的圖型高速化處理技巧,最後還有兩個章節討論遊戲的資料儲存和資料的管理。對想要學習製作遊戲的讀者提供很好的參考。●介紹遊戲程式所需要的特有思維與技術 ●說明Visual C 配合MFC、DirectDraw、DirectSound等的應用 ●從製作遊戲雛型開始由淺入深到各圖型的特效處理等 ●RPG、卡片遊戲等主題分別進行重點介紹 ●MCI、WAVE、DirectSound等音源音效整合到遊戲中的方法 ●DirectDraw的圖型高速化處理技巧 ●討論遊戲的資料儲存和管理方式 定價 490 元 特惠價 392 元 PG20101 RPG角色扮演遊戲程式設計—完整實例與經驗分享 想要進入遊戲設計的產業,坐擁高薪嗎? 想要學習如何開發與製作一套RPG角色扮演遊戲程式嗎? 本書提供由淺而深的完整實例,並配合作者簡潔清淅的文字說明及多年開發遊戲的實務經驗分享,從零開始說明RPG程式的設計要點,是您邁入遊戲開發和程式設計的最佳參考書藉。本書以Visual C 為開發遊戲程式的環境,適合已有一點Visual C 使用經驗的讀者,書中共分十個章節,從最基本的RPG角色扮演遊戲設計要素開始介紹;再來教您Windows視窗程式設計與RPG遊戲配合的基本;圖形檔的顯示與合成;顯示地圖與人物相關的座標處理;人物角色移動的思維與邏輯;戰鬥的設計與程式判斷;RPG裡所產生的事件的處理;角色參數的編輯設定和程式設計重點;音效加入與故事的整合…等等,每一章節都有完整高水準的程式範例配合解說,是想要成為遊戲程式設計師不能少的參考用書。 定價 490 元 特惠價 392 元 1
superlevin
高階會員


發表:181
回覆:313
積分:180
註冊:2003-01-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-26 20:44:15 IP:211.76.xxx.xxx 未訂閱
淺談地圖編輯器 戲子 地圖編輯器,顧名思義,就是用來編輯地圖的工具,如果你玩過魔獸爭霸或是帝國時代2,英雄無敵的話,應該會知道這幾款遊戲都附有地圖編輯工具,可提供玩家自行編輯地圖關卡,地圖編輯器就具有類似的功能。 這套東東通常是由程式,美工,策劃三人所討論出來的,理由很簡單,因為美工是使用這套編輯器的“使用者”,程式則作出這一套編輯器提供美工去使用,策劃則居中作協調工作,間或與程式討論編輯器的用途。 程式開發編輯器軟體的目的何在?事實上這是一個大問題,這得從頭開始談起了......其實一般常玩遊戲的玩家應該都可以發現,幾乎沒有一款遊戲是不帶背景的,小從大富翁,大到角色扮演,戰略,其實玩家應該都會發現這種事實才是,換句話說,背景(或說是背景地圖)在遊戲中,正扮演著一個不容忽視的角色。 “不過是背景圖罷了,有啥大驚小怪的,只是把圖貼上去而已不是嗎?” 當然,有人會這樣評判背景圖的功能性,或者,我該舉個例子讓大家知道它的功能究竟包含了什麼?最方便解釋的應該是事件處理的部份,玩過角色扮演遊戲的人應該都知道,當玩家控制主角行經某處時,會出現一些偶發事件,像是忽然有人會跑出來跟你講話,或是遇到特定的敵人......等等,像這些事件,通常都是由地圖編輯器來予以設定的。 另一個例子是障礙物的設定,譬如玩星際爭霸,如何讓軍隊無法越過高山河流,又譬如玩英雄無敵,如何讓軍隊在途經沼澤地帶時,減緩其行進速度,這些都是靠地圖編輯器予以設定的。也就是說,其實地圖編輯器不光是將圖秀在背景這個簡單的任務而已,它所包含的功能幾乎占了遊戲的大半,凡跟背景牽上關係的,全部都要靠地圖編輯器來付予其適當的功能,想製作遊戲的人不可不知道這個重點。 就以星際爭霸的地圖編輯器來說,通常玩家只要開出一個地圖編輯器,將你所要的高山河流圖素“貼”上去,然後再放幾個軍種,設定過關條件,最後儲存檔案,然後只要玩家想玩自己設計的地圖,很簡單,進入遊戲,選擇自己設計的檔案,按確定,然後就開始可以玩了,像這樣子簡單的工作就可以處理好一個遊戲關卡(玩家連程式都不必寫),可以想見地圖編輯器包含了多少的設定與功能。 再換另一個角度來說,像這樣的地圖編輯器,甚至連玩家都可以自訂關卡,可以想見該遊戲公司的美工是如何輕鬆愉快了,所以,一個好的地圖編輯器不僅可以包含遊戲大部份的功能設定,還可以減少公司開發遊戲時所耗費的成本,無怪各遊戲公司幾乎都是採用地圖編輯器這種演算法來製作遊戲了。 那麼地圖編輯器究竟含有什麼玄機? 對製作遊戲的人來說,不論他是策劃、程式或美工,相信都可以回答這個問題,整個問題的答案可以用一個詞兒來涵蓋說明,那就是“圖素”(Tile)。 圖素算是地圖編輯器的一個專有名詞吧。對美工而言,說它是貼圖的元素也可以;而對策劃而言,說它是事件引發的記錄點也沒什麼不對,就看整個遊戲製作團隊要怎麼樣看待它所代表的功能性了,而且這方面的問題,最好還得經過三方面的協調,才能夠真正的確定。當然,如果你只是一個人想製作遊戲的話,那就不需要溝通這方面的問題了。 究竟圖素這種東西該如何解讀呢? 我們可以試著這樣想,今天我們要製作一張背景圖,這張圖上面,有一面牆壁,大約占掉畫面上約百分之七十的面積,而畫面下方剩下的百分之三十,則是路面......好的,現在我們開始畫了,一種方法是開啟小畫家(或類似小畫家之類的繪圖工具),一筆一畫地將圖給完成...至於另一種方法,則是將牆壁分成一塊塊地先畫好,路面也是一樣的處理,然後,再將這些畫好一塊塊的東西,像拼圖一樣的拼上去... 似乎有人會開始比較這兩種方法的優劣性“似乎第一種方法會比較有效率,而且也會畫得比較有質感吧!”當然,如果工程就只是這麼一張圖的話,利用第二種方法的確是有點畫蛇添足,而且利用拼圖的方式,恐怕也會拼得不是很好看的樣子。但如果我們換一個角度來思考,可能答案就不同了:如果我們準備要畫10張這種圖,同樣是牆壁跟路面,但是比例可能會不同(有幾張可能是六成牆壁四成路面,有些則是九成牆壁一成路面),而且,理所當然地,這些牆壁路面不可能每一張都長得一模一樣......。好,問題來了,你仍然會認為第一種方法最快嗎?那如果要你畫五十張呢?或者一百張? 究竟是那一種方法最快? 換句話說,地圖編輯器最大的優點就在於:重覆使用性高,背景地圖製作速度快,簡單易用等。譬如你想製作一個RPG遊戲,很明顯的,RPG遊戲一定會有城鎮,而且由於文化的一致性,一般來說城裏的房屋都是大同小異,如果我們以暗黑破壞神II來說明,其中有一個阿拉伯城就是一個很典型的例子。 現在假設你的遊戲背景設定在中古世紀的阿拉伯,並且整個遊戲共有二十個城鎮,首先我們會注意到的是:這二十個城鎮的建築物排列是肯定不會一樣的,但由於文化上的一致性,肯定長得也會差不多;其次是城裏的道路,房屋,幾乎也相差不大,於是,地圖編輯器在此發揮了功效,試想,如果你一開始的時候就先把具有阿拉伯風格的幾個牆壁的圖素給畫好,然後當然,你的每一張背景就開始利用圖素貼圖的方式來製作了,而且相信速度將會非常的快。也有人問,如果光靠幾個圖素就想畫出二十個城鎮好幾百個建築物的外觀,似乎也太難、太懶了吧。我個人完全同意這種看法,所以事實上,真正要做出好幾個城鎮的背景圖的話,所準備的圖素也不能太少,譬如說,有些圖素可能同樣都是牆壁,卻有好幾種不同的樣式,有的圖素上面有斑駁的痕跡,有的圖素上面可能有塗鴉等,像這樣同樣是牆壁但樣式不同的,就必須要準備好幾個來使用,又如樹之類的背景,可能也要準備個好幾種不同樹的圖素,否則的話一個遊戲從頭到尾就只有一種樹,豈不荒唐。不過一般遊戲還是會重覆使用到一些圖素的,玩家如果不信,可以在玩RPG的時候稍微注意一下,應該會發覺有重覆的地方,譬如樹這種東西,應該是最容易發現到的。 至於是否簡單易用,那就得看程式設計師的功力了,功力好的,製作出來的編輯器可能比小畫家還要簡單。但也並非全然如此,如果這套編輯器被企畫付予太多的功能,恐怕再厲害的設計師也不一定做得出簡單好用的編輯器系統。但唯一能夠給予肯定的,是它仍然比傳統的畫法要更為方便好用,光是這一點,就足以支持我們用地圖編輯器這個演算法了。但我們也必須承認,如果光只是這個原因來驅使我們使用地圖編輯器,那也太小看地圖編輯器的“勇猛”了,它在其他功能的強大,似乎更使得我們不得不承認它存在的價值。 接著討論地圖編輯器 上面的小節談到地圖編輯器可以拿來節省繪圖的工時成本,這一點確實蠻吸引人的(至少對遊戲開發公司而言是如此),但我們也不得不趕緊將它更強大的功能給介紹出來,好讓大家知道在地圖之外,它所代表的地位依然也是無可取代的。 相信玩過魔法門英雄無敵的人都知道,每次玩家在控制英雄行動時,他的速度經常是時快時慢的,譬如當英雄行走的是一條路面時,一回合下來,就可以走的很遠;如果行走的是草原的話,一個回合下來,走得就慢了一些;如果經過的是沙漠區的話,速度更是慢了下來;甚至當英雄經過沼澤區時,能走到三步就已經很偷笑了。這類形的遊戲其實很多,通常戰略遊戲都有作這樣的設定,即便是三國志,也沒有例外。這樣的設定其實必須歸功於地圖編輯器的功效,它是怎麼做到這樣一件事的? 其實也不難,只要程式設計師在製作編輯器時,順便設定一個值,然後讓這個值跟著一個圖素跑,這樣一來,每一個圖素就會帶有一個值,而這個值所代表的就是該圖素所消耗的步數。還不通嗎?再詳細一些你可能就曉得了,假設今天已經設計好一套地圖編輯器讓美工去繪背景地圖: a)此美工先開啟地圖編輯器和一張背景地圖,這張背景地圖因為還沒貼圖,所以是空的。 b)地圖編輯器要求美工選取圖素,美工便將自己先前畫好備用的圖案選進地圖編輯器中,這些圖案應該是一些沙漠,草原之類的,先假定該美工已畫好了十五種沙漠圖案跟二十種草原圖案,所以美工將這些圖案選進來當作圖素。 c)編輯器要求美工針對每一個圖素給定一個數值,由於美工不知道每個圖素的數值是多 少,所以跑去問策劃,於是策劃跟他說只要是草原數值就給2,沙漠的圖素就給4。(這一個步驟非常重要,因為這一個步驟,先前所述各遊戲的效果才能顯現出來) d)數值給定之後,美工開始將這些圖素貼進整張地圖編輯器中,貼完之後,整張背景地圖於以完成。這是一張有沙漠跟草原參雜的背景地圖。 e)美工將做好的背景地圖交給程式師,再來就是程式師的功夫了,理論上,程式會寫一個程式讓一個假人在這張地圖上跑,假定這個假人的行走能力是每回合8步,所以當假人往前走到草原區的圖素時,程式會判斷該地區的數值是2,所以會消耗掉2步的能力(還記得草原給定的數值是2嗎),剩下6步,照這樣看來,如果這個假人一直都在草原區行走的話,算算每一回合應該可以走4格圖素的長度(8步÷2步=4);但如果該假人是在沙漠區行走的話,由於程式判斷該地區每一個圖素的長度會消耗掉4步,所以假人一回合只能走兩個圖素的長度,相形之下,這種因地形不同而有速度快慢的效果,就可以做出來了。當然啦,如果經過兩個草原和一個沙漠的話,也是剛好能在一回合走完喔(2個2步+1個4步=8步)。從上述的例子,我們就不難發現,地圖編輯器甚且具有地形標示的功效呢。 地圖編輯器之事件處理 談到事件處理,恐怕有很多人不知道它是幹什麼的,這裏我們希望能夠先聊聊這個東西。事件處理,顧名思義,就是用來處理事件的,不過還是舉例比較快:譬如'軒轅劍參'這個遊戲,玩家應該在玩的過程中,常會碰到一些突發狀況,譬如主角跑到一個地方,就會有人跑出來跟你講話,或是會在該處跳一段動畫等,像這類的東東,就可以說是事件。 事件可以分為兩種,一種是自發性的,另一種則是非自發性的,如果是非自發性的,就比較難用地圖編輯器來設定(也是可以啦,只是比較難,程式設計師跟策劃必須多花點腦筋做溝通才行);而如果是自發性的話,利用地圖編輯器就方便很多了。 什麼事件是非自發性的呢?又什麼事件是可以自發的呢?譬如現在我們正在設計遊戲,遊戲過程是主角接受了一位城裏的美女請托,希望主角能從城外的賊窟裏救出她父親,這裏總共有三個事件: 第一個是主角經過美女面前時發生,此時主角會自動停下來(理論上此時滑鼠按鍵是不能操控的),該位美女會走到主角面前說話,要主角救她父親,主角同意了。 第二個是主角找到美女的父親,然後自動播放動畫,主角將父親從牢裏放出來。 第三個則是主角再度經過美女面前,主角再度停下來,然後美女跑過來給主角一個熱吻,表達感謝之意。 其中,第一個和第二個就是自發性的事件,而第三個事件,如果沒有經過第一個和第二個事件的話,是不可能會發生的,所以第三個事件並非自發性的事件。之所以自發性事件可以利用地圖編輯器來反映,這邊就做一個說明: 同樣地,程式在與策劃溝通過之後,針對每一個圖素再給定一個數值,用來表示事件的處理,所以現在的圖素除了有上次提過的地形數值之外,又增加了一個事件的數值。好的,我們繼續:這個事件數值,同樣地,美工人員在貼圖素的時候,事件數值也應該給定一個值,所以美工跑去問策劃該設定多少?策劃就跟它說,在美女附近的場景路面的圖素,給定事件數值1,另外,在城外父親被關的地牢附近的圖素,其事件數值給2,其餘的地方就給0,美工照做了。 做好之後,程式師拿來試用,當假人在地圖上亂跑時,程式師會要求程式去偵測甲人所在之處的事件數值,如果是0的話就沒事,如果是1的話,就讓程式去跑那一段美女要求主角幫忙的動畫;如果是2的話,就讓程式去跑那一段從地牢救人的動畫,果然,因為美工在美女附近的地面圖素之事件數值都設為1,所以當假人跑到美女附近時,事件啟動了,要求幫忙的動畫也就出現了;同樣地,當甲人跑到地牢附近時,也會踩到美工設定事件數值為2的圖素上,同樣會觸發事件2的啟動,救人的動畫也就出現了。 所以我們已經檢視過,一連串的自發性事件是如何地被編入背景地圖的每一個圖素中,當然,並不是每一個圖素都會用到這個事件數值,所以有些人會認為,為了引發幾個事件,要弄到地圖上的圖素都得跟一個事件數值,會不會不太划算(這一點跟程式師大有關係)? 唯我必須強調的是,如果整個遊戲就只有少數幾個事件的話,誠如所說的,確實是有點不太划算,只不過,事實並非如此,按照目前發行的遊戲水準來看,通常一套完整的RPG,所包含的事件至少就應超過500個(這還算小喔),如果策劃統一將那些寶物獲取、室內外進出、地圖間切換等也一併算進來當成是事件的話,更可以肯定將會超過1500個以上,在這種情形之下,利用地圖編輯器來處理事件,就不是一件不划算的事了。當然,如果萬一類似的自發性事件真的不多的話,卻也可以考慮另一種節省的辦法,那就是將事件處理的數值和地形數值合併在一塊使用,如此的話,就可以解決所謂的浪費問題了。 但說是浪費,其實每一個圖素不過只多用了2個位元組的空間,算算一個遊戲如果有一萬個圖素的話,也不過是多用了兩萬個位元組的空間,相較現在的記憶體動輒一億幾千萬的位元元組容量,似乎也不必太吹毛求疵吧。 自發性可以利用地圖編輯器,非自發性呢? 喔。那可難多了,通常會讓程式師最後放棄埰地圖編輯器來處理事件的原因,多半就是非自發性事件過多,過雜的因素。一般采多線式劇情的RPG,也是不建議用地圖編輯器來處理事件的,原因很簡單,如上面談過的例子,我們已設定美女要求主角救她父親的事件是1,所以美女所在地區的圖素事件數值都已經設為1了,意思就是說只要主角走到該處,事件1就會被啟發,現在如果我們設定美女親吻主角的事件數值為3的話,試問,這事件數值3應該被設定在那裏?沒錯,我們在這兒遇到了衝突,那就是 — 當主角走到美女附近的時候,應該有可能會出現兩種情形: 事件1:美女要求救她父親 事件3:美女親吻主角 試問,如今美工已設定附近圖素都是事件1了,那麼事件3該怎麼辦?如果將附近圖素又全改為事件3的話,那事件1又該如何?換句話說,我們該如何編輯地圖,好讓主角走到美女附近時,會先啟動事件1(而不啟動事件3),等到救到她父親了之後,又能夠在美女附近啟動事件3(而不會啟動事件1)呢?我想,如果只利用這個地圖編輯器的話,應該是辦不到吧! 地圖編輯器進階說明 之前談了好幾個有關地圖編輯器的基本作用,現在談談它的進階。這次想要來談談有關多層的概念。 什麼叫作多層的概念? 其實就字面上來說,大家應該不難猜出它是什麼,簡單來講,就是地圖編輯器具有多層貼圖的功效。 那什麼是多層貼圖呢?我們可以舉個例子,譬如我們曾玩過博多之門或是軒轅劍參的朋友們,應該會發現主角有時候會被一些高聳的建物,或是幾棵樹擋住,這種“建物圖蓋在角色的圖上”或是“樹圖蓋在角色圖上”的狀況,使我們在玩的時候,很容易地就產生了一種“角色在建物或樹後面”的錯覺,這種錯覺運用,在RPG或是動作類遊戲中最常被運用,而所採用的,就是多層貼圖的觀念。這種概念說穿了也沒什麼,如果當主角站在草原上的樹後面的話(以玩家的角度看),它的方法就是先貼草原圖,然後貼主角人物圖,最後再貼樹圖,然後就達到這個功效了。 作法似乎很簡單不是嗎? 還有另一種情況也很常用多層貼圖,譬如一個主角站在湖的船上,以玩家在岸上的角度看,近處先有楊柳,然後較遠處的湖中,主角正站在那兒,更遠的地方則有高山白雲,當遊戲畫面想要製造遠近效果時,可能會先貼最遠的山圖,然後再貼湖面和主角(包括船),最後才貼近處的楊柳,如此的話,三層圖共分遠、中、近,就可達到立體遠近的效果了。當然,如果想要強化這個效果的話,還有妙招,一般人都曉得,當一個人坐在火車上從車窗向外看風景時,最遠的山是移動最慢的,而最近的火車電竿則是移動最快的,所以當景物越遠,它的移動就越慢,我們嘗試將這個觀念運用上去 — 當主角在湖中移動時,我們讓最靠近玩家的楊柳圖層位移的比較快,然後讓最遠離玩家的高山白雲的圖層位移變緩,然後中間的主角不動 — 你猜會怎樣? 沒錯,看起來就好像是主角的船正在移動一般,而且它的立體效果肯定會非常好,要是沒記錯的話,軒轅劍貳倒是運用了不少這方面的技術,不知是否還有玩家記得? 地圖編輯器二次進階 上節談到地圖編輯器中有關多層的概念,並且也舉了例子,事實上這種例子很多,不勝枚舉,就連微軟提供的DirectX DEMO中,也用到了類似的概念(安裝過的人應該知道“熊吃狐狸”的那個例子吧。),一套特別強調多層技術的遊戲,有時候甚至會用到八九層的貼圖也不是沒有可能。 至於地圖編輯器製作多層的介面,通常是用某些按鍵來切換的,就我之前來說,有關地圖編輯器的撰寫,就曾有做過四層的記錄,方法自然是利用功能鍵來切換了。按F1時,畫面是畫最底層,而且這時美工所編輯的也是最底層的,如果按F2的話,就編輯第二層,如此類推,按F4的話就是編輯最上面一層。那如果要看四層貼圖合起來的效果,就可以按F5,利用這樣的方式,想寫多層地圖編輯器的人,或許可以參考參考(雖然個人介面這樣的設定未必是最好的)。 多層談完之後在來是有關3D的地圖編輯器探討,這部份算是所有地圖編輯器中,屬於較麻煩的部份,個人在此並不打算深談,因為這已經牽涉到3D中有關Z緩衝以及光線追蹤的技術了,談下去恐怕會停不了,並且也有點離題過遠,有關3D的部份以後如果有機會的話再來專題討論一番。這次只打算談到一些相關技術的遊戲,如虛幻系列的遊戲,都是利用了3D地圖編輯器來編輯場景貼圖的,作法是先利用一張某固定比例的2D平面圖,然後在上面畫出線條(好像在畫建築工程圖一樣),並利用不同的顏色來表示壁面材質,如灰色線是指牆壁,咖啡色線是指木頭等,等畫好之後,這張圖在將來就是遊戲過程中,玩家可以拿來看自己所在位置的小型地圖了,然後當美工要開始貼圖的時候,就執行3D地圖編輯器,讀取這張2D平面圖,之後便可發現,自己好像身在一個利用線條所組織起來的迷宮之中,沒錯,這就是該2D平面圖所展現出來的3D效果,只是目前只有線條而已。這時美工該做的,就是在這些只用線條架構起來的迷宮,一格一格地將圖貼上去,而且還要在迷宮中邊走邊貼喔。 程式不是寫來玩的 而是要創造價值
------
林壽山
網站: http://superlevin.ifengyuan.tw
mail: superlevin@gmail.com
superlevin
高階會員


發表:181
回覆:313
積分:180
註冊:2003-01-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-26 20:52:23 IP:211.76.xxx.xxx 未訂閱
地图编辑器的制作    RPG游戏往往要有大量的场景,场景中根据需要可以有草地,湖泊,树木,房屋,家具等道俱,由于一个游戏需要很多场景且地图越来越大,为了节省空间,提高图象文件的可重用性,RPG游戏的画面采用很多重复的单元(可以叫做“图块”)所构成的,这就要用到地图编辑器了。我们在制作游戏引擎前,要完成地图编辑器的制作。在 RPG游戏里,场景的构成,是图块排列顺序的记录。首先制定一个场景构成文件的格式,在这个文件里记录构成场景所需要的图块的排列顺序,因为我们已经为每个图块建立了索引,所以只需要记录这些索引就可以了。一个场景的构成,是分成几层来完成的:地面,建筑和植物,家具摆设,和在场景中活动的人物或者物体(比如飘扬的旗帜),按照一定的顺序把它们依次显示到屏幕上,就形成了一个丰富多采的场景。我们可以用数组来表示地图场景的生成过程。    MapData[X][Y]; //地图数据,X表示地图宽度,Y表示地图高度    Picture[num]; //道具的图片,num表示道具的总数    void MakeBackGround() //生成场景函数    {          int n;    for( int i=0; i
------
林壽山
網站: http://superlevin.ifengyuan.tw
mail: superlevin@gmail.com
brucetsao
一般會員


發表:1
回覆:33
積分:11
註冊:2002-09-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-08 18:41:06 IP:220.130.xxx.xxx 未訂閱
同學 您問的問題太大 我先用方法給您 您可以用以下方法 宣告 圖形陣列[1..您要的個數] ; //要畫都來 integer mapdata[1..n][1..n] ; 用兩個迴圈 for i 迴圈 for j 迴圈 畫面.canvas.畫圖 圖片shape[mapdata[i][j]) 這樣就可以了 對應實際delphi pascal的程式應該不難了
系統時間:2017-12-14 22:50:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!