InfiniteWing

Give me a place to stand on, and I will move the Earth

  • 2017-01-16
    個人作品►楓之谷APP

    楓之谷APP開發日誌 ─ 第四章

    似乎相隔了許久才又想起更新這一系列的日誌,老實說這一年多也確實是發生了許許多多的事情,差點讓我都忘了怎麼繼續這即將邁入三年的開發計畫。

    呼,扯遠了,今天這一篇文章是要講述如何把地圖套上手機APP裡。

    冒險的起點 ─ 勇士之村

    好的,大家可以看到這是一張勇士之村的大圖

    各位一定很好奇這楓之谷的背景圖片是怎麼產生的:
    基本上就是一個一個物件堆疊起來,然後靠各自的x,y座標,z軸來控制前後景,最後東拼西湊就能產生這麼一張完整的勇士之村地圖。

    (好吧其實裡面滿多血淚的,但是實在事隔多年我也差不多快忘了當初的血淚是怎麼流的xDDD,如果對官方XML裡面的格式有問題的話不妨站內私訊我。如果有足夠的緣分我剛好上線看到的話一定會完整地回覆。)

    不過在這個地圖裡面,其實左側跟右側、還有下方都是有一定大小的留白…因為在官方的XML資料中,有些竟然沒有邊界的VR值…。
    幸好國外的水友是強大的,翻了好多國外的討論,最後終於得到了計算邊界的公式,然後就寫了一支程式來自動修復這個錯誤。

    修正邊界錯誤的勇士之村大圖

    可以看到經由程式修改了VR邊界值的錯誤後,新產生出的這一張大圖的邊界已經不會有留白的部分了。這樣就有助於將這張大的背景地圖繪製到手機上,讓角色看起來真的像在勇士之村等等經典楓之谷地圖中遊走一樣。

    或者你現在會問說,把整個地圖物件都壓縮進一張大圖,那不就會出現很詭異的情況?比如原本某個物件應該是在角色的前面,那現在不就通通跑到後面去了?

    老實說對於這個事情我也實在愛莫能助,雖然都已經知道地圖要怎麼繪製了,但是遭不住Android他有運算及儲存效能的問題。
    如果每個物件都是要動態繪製上去的話,那天曉得一幀跑完需要幾秒的時間…更何況還有傳說中的OOM,一不小心地圖都還沒畫到一半就OOM爆炸了…。

    所以無奈下我只能選擇把整個地圖壓縮成一張大圖,至少這樣就能減少許多運算及記憶體的耗損。

    將背景加入遊戲中

    這是將地圖實際放上APP後的表現,老實說我做到這個地方已經懶得繼續做下去了…畢竟又不能上架也不能炫耀,這憋屈的感受怎麼讓人受的了…。

    所以從2015年4月完成地圖的實裝後,我就把整個計畫擱置了整整一年半的時間,直到最近才又因緣際會下重啟這項計畫。

    下一篇日誌就會來講述最近實裝的成果─背景的繪製(就是上圖黑色的地方,會用動態的地圖背景來取代,基本上加上去後就跟真的楓之谷有87%像了xDDDDDDD)

    To be continued..
    Posted at 2017-01-16 03:58:41
    Share 留言
    • Android APP
    • 個人作品
    • 童年
    下一篇
    楓之谷APP開發日誌 ─ 第五章
    上一篇
    楓之谷APP開發日誌 ─ 第三章

    InfiniteWing

    總覺得我一直在尋覓著什麼

    最新文章

    • [Performance comparison] CSV reader C/C++ V.S. Python - 2020-07-11
    • [Kaggle] Jigsaw Unintended Bias in Toxicity Classification - 2019-06-28
    • [Kaggle] Instant Gratification - A synchronous Kernels-only competition - 2019-06-21
    • 楓之谷APP開發日誌 ─ 小結 - 2018-08-21
    • WSDM - KKBox's Churn Prediction Challenge - 2018-01-01

    分類

    • Big Data13
      • Cloud Computing3
      • Competition8
      • Deep Learning2
    • FreeBSD1
      • 系統防護1
    • Kaggle1
      • Notebook1
    • Performance comparison1
      • C/C++1
        • Python1
    • 個人作品8
      • 楓之谷APP8
    • 網站設計2
      • Hexo2
    • 論文寫作1

    標籤雲

    Android APP8 Big Data13 C/C++1 CNN2 Cloud Computing3 Deep Learning2 Experience1 FreeBSD1 GCP3 Hexo2 KO1 Kaggle11 Keras2 NLP1 Notebook4 Performance comparison1 Python1 Visualization1 WSDM1 ssmtp1 個人作品8 童年8 第一次3 系統防護1 經驗16 網站設計2 論文寫作1 資訊安全1

    彙整

    • 七月 20201
    • 六月 20192
    • 八月 20181
    • 一月 20181
    • 十二月 20171
    • 十一月 20171
    • 十月 20171
    • 九月 20171
    • 八月 20174
    • 七月 20177
    • 二月 20171
    • 一月 20172
    • 十一月 20151
    • 十月 20152
    • 九月 20151
    © 2021 InfiniteWing all rights reserved.
    Powered by Hexo
  • Home
  • About
  • Archives
  • Work
  • Gallery
  • Private