分析flash mmorpg地圖的實現_Flash教程
推薦:Flash實例教程:多張圖片循環滾動要讓幾張圖片循環滾動,最簡的原理就是把連續圖片再復制一份接到尾部,待第一張圖片滾完之后被復制的接著滾動。原理圖示如圖7-5所示。 圖 7-5 示意圖 不管是用AS控制還是利用幀手工制作都可以使用這個原理,示意圖中,共有兩張圖片為“圖片一”和“圖片二”
網上看一篇關于目前幾個流行flash mmorpg地圖實現的分析,這里也想說說自己的一些看法。
常見的三種方式:
1、整圖
2、Tile元素拼裝
3、柵格化切片
整圖

整圖加載很好理解直接加載一張背景圖。這種方式比較適合小場景(面積不要超過兩屏),例如可以用來做悅來客棧、家里的菜園子或者王員外的內院。
整圖的表現最大的優點就是可以讓美工隨意發揮,畫面可以做得很細致。當然缺點也比較明顯無法做得太大,否則加載將是個漫長的過程,即使玩家有耐心去 等待加載,但是會浪費客戶端的很多內存容量。一個10屏*10屏的地圖,客戶端顯示每次只能顯示一屏,有99屏的東西是暫時用不到的。
Tile元素拼裝

Tile就是斜視角地圖中的一個標準菱形,這在許多的Tile Game里面最常見(紅警、帝國時代)。這種方式會實現準備好各種地形,比如草地、沙漠、水面、雪地。理論上這種方式可以滿足任何地圖需求。
Tile元素拼裝的優點是素材包小,因為他是提取了大量的可重復利用的素材在重復使用。素材包小可以節省素材加載時間。
不過Tile元素拼裝的方式也不是誰都可以玩得好的,主要問題其實在于這些可重復利用的素材必須是2方連續的。要想讓地圖表現力好,Tile的制作 比較關鍵。這并不像整圖那樣,美工可以大筆一揮畫出幾種色彩層次。如果Tile素材制作的不好,地圖看起來會非常死板。同時Tile元素的制作也必須處理 好各種地形的接壤問題。
比如你有4種地形:草地、水面、沙地、雪地,那么你就必須創建草地和水面交界的效果,水面和沙地,沙地和雪地。。。。然后草地和水面的交界你還需要 考慮草地的上面有水、下面有水、左邊有水、右邊有水、左上角。。。。。總之就是,你希望你的地圖看起來舒服就必須窮舉各種情況,然后還要一遍一遍調整。但 是一旦我們做好了這一切,那么將會非常受益。如果你的開發人員有空還可以幫你設計非常好的隨機生成算法。(像帝國時代的編輯器)
柵格化切片

柵格化切片他的背景繪制其實還是以整圖的方式完成的,只是按照一定的大小把它切成了一些固定大小的小圖,比如250*250或者300*300,然 后給每張圖定好編號,通常是map_行_列。地圖加載的時候,我們根據場景的坐標加載需要顯示的切片。當然加載的數量通常會比你看到的要多一點,事先預加 載一些。
柵格化切片的方式事實上我們在電子地圖上見得很多,當然電子地圖是可以進行縮放的,所以他所做的切片通常還會配合縮放倍數做不同倍數下面的分割。
使用柵格化切片表現力上跟整圖一樣,在制作的時候可以讓美工任意發揮。同時也能解決一部分內存浪費的問題。這看起來是個非常完美的方案,甚至可以讓我們做無縫地圖。可是事實并非如此的,盡管我們有著無窮的想象力,但是我們還是會在制作大地圖上遇到問題。
第一個問題——地圖的設計
我曾經一廂情愿的規劃了一張9000px*7500px的地圖讓美工去做設計,結果問題來了。這樣一張大地圖在ps里面打開都是一個漫長的過程,每次做一次存盤都可以去喝杯茶了。盡管效果可以很好,但是等待的過程幾乎讓人吐血。
第二個問題——地圖編輯
我們的地圖是在自己開發的air編輯器,盡管這時候的地圖已經是ps合層好的了,但是在編輯器中操作仍然是個惡夢。
關于障礙數組
其實對于障礙數組也是地圖設計中一個需要考慮的問題的因為這會關系到你的路徑算法和物體遮擋,最常見的作法就是建立一個2維數組對應到 地圖中,然后使用A*來實現。當然你也可以不這樣記錄,直接記錄地圖上物體底面積形成的多邊形。尋徑的時候采用兩點連線然后繞過障礙定點,遮擋關系也利用 這些多邊形頂點做計算。甚至你也可以不用2維數組改用object的方式只記錄那些被占用了的底面積。。。
但是無論采用什么方式,你的地圖大必然參與到引擎中的物體就會多,存儲的內容就多。假設你也像我們一樣通過2維數組記錄障礙,那么數組同樣也是限制你實現大地圖的一個問題(盡管不是那么明顯)。因為你同樣會需要浪費到很多內存存大量的暫時用不到的信息。
上面提到了對背景做切割,2維數組如果你愿意也可以做切割來實現隨需加載,對于地圖上的建筑同樣如此。不過我是感覺這樣做沒有多大意義。從玩家的角度看,真正在乎你的大地圖制作的有多少,難道因為你做了個大地圖玩家就一定會買賬么?
個人建議
實際的開發其實我認為并不一定那種方式更好,取決于公司的開發資源和場景的實際情況,你對客戶方的考慮。上面的三種方式我們可以相互結合。
我們可以用Tile拼裝的方式結合簡單的表隨機算法做個平鋪工具給美工來快速建立一些地圖的局部,讓他們直接另存出圖片,導入photoshop制作整圖。當然如果沒時間的話隨便找個編輯器也行,反正比photoshop的復制會快很多。
另外,我們可以在設計引擎的時候將整圖和柵格化切圖的方式一起考慮,對于小場景使用整圖加載,對于大場景使用切片加載
分享:Flash鼠繪藍色卡通人物本例介紹運用Flash繪制藍色卡通人物,教程詳細講解了繪畫以及上色全過程,希望能給朋友們帶來幫助~~ 最終效果: 開始進入教程! 1.打開flash,喜歡用哪個版本都ok,只要順手,萬事搞定! 2.2.藍色的習慣是用 工具進行繪制。選擇 ,開始準備在面版中繪畫。 #
- 相關鏈接:
- 教程說明:
Flash教程-分析flash mmorpg地圖的實現
。