查看完整版本: [求助]要怎麼讓圖片運行更有效率?
頁: [1]

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

...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

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 去做...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

ahway9988 發表於 2019-2-18 11:00 PM

本帖最後由 ahway9988 於 2019-2-18 11:01 PM 編輯

codewice 發表於 2019-2-16 01:40 AM static/image/common/back.gif
聽起來你想做遊戲,像 2D RPG 那樣在地圖上移動角色?

首先用 W*H 個 ImageView 一定會撞上效能問題,可以 ...
感謝orz
懂方向了,看來是需要花時間去了解 真正的遊戲引擎 是怎麼做出來的{:28:}...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

kevin61416 發表於 2019-2-21 11:43 AM

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

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

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

若您對於遊戲有興趣 這些都是必要的知識唷 {:31:}遊戲引擎內絕大部分 也是在實作出這些東西喔!
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

ahway9988 發表於 2019-2-27 04:26 AM

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



受益良多,感謝orz
正在努力填補這些大坑小坑中{:27:}<br><br><br><br><br><div></div>
頁: [1]