伊莉討論區

標題: [求助]要怎麼讓圖片運行更有效率? [打印本頁]

作者: ahway9988    時間: 2019-2-14 06:38 AM     標題: [求助]要怎麼讓圖片運行更有效率?

因為找不到androio studio app 的版,感覺上在java 區發問好像比較合適
問題:
我想做一個 w*h高數量的圖格 組合成一張map
用ImageView去放這些圖再移做主人公的移動,當作map相對移動時畫面會有嚴重的閃現
經過測試後,w和h的數值越高延遲越嚴重,幾乎一個手機畫面放不下2倍大的數量,我是用32*32的圖塊組成map,大約15*20個圖塊佈滿一個手機畫面

經過想到另一個方法,用一個佈滿手機畫面的ImageView去讀Bitmap ,這個Bitmap 用Canvas 去畫每個圖格然後組合,雖然解決了閃現問題,但圖格一多也會有延遲,似乎是記憶體吃盡,而且偵數下降到約25左右免強才可以跑

我實在很想將偵數提高到100,也就刷頻率強度設為10ms
才剛做地圖而已就下降到25,實在很危險,所以我想問說有沒有android studio 有其它方法可以高效率運行這些圖塊
除了要沒有閃現也要能夠運行1000*1000個以上數量的圖塊

再問問有沒有人也跟小弟我一樣在初學app, 大家一起討論android app 在哪裡可以不用花錢學到較多遊戲設計技巧orz


作者: codewice    時間: 2019-2-16 01:40 AM

聽起來你想做遊戲,像 2D RPG 那樣在地圖上移動角色?

首先用 W*H 個 ImageView 一定會撞上效能問題,可以直接放棄這個方向。

用 Canvas 去畫應該要很快,還會遇上 framerate 低的問題,可能要看看程式碼,確認是不是多做了很多不必要的事情。

聽起來你正花時間在 game engine 的部分?如果只是要做遊戲的話,我覺得是先挑一個現成的 game engine 來用比較不會花時間。如果是想研究遊戲開發,沒有經驗的話,也是先找個 open source 的 game engine,讀它的程式碼,學習別人是怎麼做的。這個問題跟 Android Studio 無關 (AS 只是 IDE,但你的問題是 game engine design,IDE 幫不了你)

最後,據我所知,「貼上 W*H 的圖」這種事情,game engine 幾乎會在底層利用 3D driver 去做
作者: ahway9988    時間: 2019-2-18 11:00 PM

本帖最後由 ahway9988 於 2019-2-18 11:01 PM 編輯
codewice 發表於 2019-2-16 01:40 AM
聽起來你想做遊戲,像 2D RPG 那樣在地圖上移動角色?

首先用 W*H 個 ImageView 一定會撞上效能問題,可以 ...

感謝orz
懂方向了,看來是需要花時間去了解 真正的遊戲引擎 是怎麼做出來的
作者: kevin61416    時間: 2019-2-21 11:43 AM

本帖最後由 kevin61416 於 2019-2-21 11:48 AM 編輯

理解遊戲引擎的確有用
然而您更需要的知識應是計算機圖學以及線性代數

例如您說的影像,在線性代數中可利用 SVD 將其進行壓縮
在圖學中,則能夠利用 Double Buffer...等技術,使畫面流暢
物體欲進行平移, 旋轉, 縮放, 投影,不過是乘上一個轉換矩陣

若您對於遊戲有興趣 這些都是必要的知識唷 遊戲引擎內絕大部分 也是在實作出這些東西喔!

作者: ahway9988    時間: 2019-2-27 04:26 AM

kevin61416 發表於 2019-2-21 11:43 AM
理解遊戲引擎的確有用
然而您更需要的知識應是計算機圖學以及線性代數

受益良多,感謝orz
正在努力填補這些大坑小坑中




歡迎光臨 伊莉討論區 (http://7.eyny.com/) Powered by Discuz!