作者kuso0516 (隱)
看板GameDesign
標題[程式] 點陣圖和記憶體
時間Fri Nov 21 22:17:50 2008
我有個程式要載入差不多6MB的24位元點陣圖
載入的時候都會頓一下
是因為尋找足夠記憶體所以花了點時間嗎?
這樣正常還是說有問題
是不是有比較好的處理方式
因為這是一張1600*1200的地圖(以後有可能更大)
我想做類似即時戰略的視窗和地圖
畫面可以上下左右移動
程式流程
1.把地圖畫到HDC上
┌──────────────┐
│ │
│ │
│ │
│ │1200
│ │
│ │
└──────────────┘
1600
2.把地圖上的物件畫出來
┌──────────────┐
│ │
│ <囧> │
│ │ │
│ /\ │1200
│ │
│ │
└──────────────┘
1600
3.把HDC某個部份畫到視窗上
┌──────────────┐
│ │ ╭───_口X
│ <囧> │ │ <囧> │
│ │ │─→ │ │ │
│ /\ │1200 │ /\ │←視窗
│ │ ╰─────╯
│ │
│ │
└──────────────┘
1600
另外想問的就是
有些遊戲會有LOADING的畫面
是怎樣寫的?
fun work_1(); //某個會花很久時間的涵式
loading(40); //畫面顯示40%成功
fun work_2(); //某個會花很久時間的涵式
loading(40); //畫面顯示60%成功
fun work_3(); //某個會花很久時間的涵式
loading(20); //畫面顯示100%成功
這樣嗎XD
新手發問,請多指教
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.84.39
※ 編輯: kuso0516 來自: 114.32.84.39 (11/21 22:21)
→ OpenBigJue:你寫的那樣算寫死 不然可以開執行緒來作出動畫效果 11/22 05:44
→ func:如果是單線程,加載時,程序處於阻塞狀態,載入的東西太大, 11/22 14:40
→ func:自然就會停頓。 11/22 14:40
→ func:加載進度條的顯示,基本上就是你寫的那樣。是寫程序的人估算 11/22 14:41
→ func:的,不能反映真實時間耗費。如果幹的事情單一,實際進度恆速 11/22 14:43
→ func:的話,倒可以通過取系統若幹參數,用公式計算並顯示進度。 11/22 14:44
→ func:但也隻是一種估算方式。windows的copy進度對話框就是這樣。 11/22 14:44
→ func:載入文件時,硬盤磁頭要尋找磁道,內存要找空閒空間,還要完 11/22 14:47
→ func:成數據的移動,當然慢。硬盤的速度尤其慢,所以很多人把數據 11/22 14:48
→ func:壓縮打包,減少讀盤時間。利用快速的內存和CPU,解開數據包, 11/22 14:49
→ func:達到減少時間的目的。因為CPU算高壓縮率的數據也很費時,所以 11/22 14:50
→ func:打包壓縮的數據不追求做到最小,平衡好各項耗時才是最優的。 11/22 14:51
→ asoedarren:樓上是對岸的朋友? 11/22 15:54
→ func:嗯~ 11/22 15:58
→ kuso0516:恩 多緒真的還不太懂 用單緒偷懶一點好了囧 11/22 21:00
推 sunneo:如果真的堅持單緒的話,可以試試看用Fiber達到user multask 11/27 22:55
→ sunneo:壓縮到是個好主意呢~~~~ 11/27 22:56