Re: [請益] 關於人物移動的狀態機

看板GameDesign作者 (壓力太大 囧mmmmmmmmmmm)時間12年前 (2012/06/09 08:23), 編輯推噓3(3012)
留言15則, 3人參與, 最新討論串3/4 (看更多)
其實你已經把整張圖寫進記憶體裡面了 只要運用sprite的概念 切割出每次你想要的區塊就行了 寫入只需要一次 之後就是讀取 陣列裡存的東西最好簡單一點 像是需要切割的邊緣座標 用二維陣列我想就行了 ※ 引述《yoll522 (yolling)》之銘言: : 前一陣子在這裡詢問各位高手人物移動該怎麼寫比較好 : 得到了Chenglap大的答案,是用狀態機的方式寫 : 目前我們一個角色有四個方向,每個方向有3張,總共12張圖片 : 所以我想到的方法是先創一個12個大小的陣列, : 接著把那張角色圖的每個位置擷取下來,放進該陣列的位置 : 大概如下 : Image *temp = new Image(L"路徑"); //讀取整張角色圖,放進temp : Image *Role = new Image[12]; //創一個Role的陣列,打算將角色圖的每個位置存入 : Role[0] = xxxxxxxx //取出方向為上的第一張圖 : Role[1] = xxxxxxxx //取出方向為上的第二張圖 : Role[2] = xxxxxxxx //取出方向為上的第三張圖 : 這樣當我按下方向鍵上的時候,程式就會去執行Role[0]到Role[2]的圖片 : 可是我查了很久的GOOGLE,並沒有查到可以擷取圖片的部分位置,然後存入陣列的 : 想請問各位高手,我的方法正確嗎?或者是有什麼方法可以讓我把角色存入陣列的? : 謝謝 : 我本來有查到SetClip,但這似乎只能擷取圖片的位置後,就直接畫出去了 : 好像不能夠存到陣列裡@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.116.3.108

06/09 08:59, , 1F
用他原本那種寫法的話就是把Role[]裡面塞[參數]比較快
06/09 08:59, 1F

06/10 18:42, , 2F
我之前也是用切割的方式來貼圖,我創了一堆陣列
06/10 18:42, 2F

06/10 18:42, , 3F
裡面都放了每張圖的x跟y的座標
06/10 18:42, 3F

06/10 18:43, , 4F
等這次期末考結束我再來研究陣列放x、y的座標
06/10 18:43, 4F

06/10 18:43, , 5F
還是陣列裡面直接放切好的圖,哪種比較有效率,謝謝
06/10 18:43, 5F

06/10 18:56, , 6F
兩者效率要看你是否每次使用一次後就把記憶體釋放
06/10 18:56, 6F

06/10 18:57, , 7F
如果程式在初始化的過程中就把圖像載入記憶體
06/10 18:57, 7F

06/10 18:57, , 8F
而在程式結束前都不去釋放資源 那兩種效率是一樣的
06/10 18:57, 8F

06/10 20:40, , 9F
效率....可以設計一個計時測試跑看看
06/10 20:40, 9F

06/10 20:40, , 10F
不釋放的話,切好的圖應該會跟setclip差不多效果...
06/10 20:40, 10F

06/10 22:59, , 11F
可是setclip有辦法把圖存起來嗎?還是只能直接貼出去?
06/10 22:59, 11F

06/11 13:26, , 12F
setclip就是把圖持續在那邊,但是設定不同的顯示範圍
06/11 13:26, 12F

06/11 13:26, , 13F
他不是貼複本,他是調整顯示範圍...
06/11 13:26, 13F

06/11 15:17, , 14F
看到這篇文章手癢想開始做3D遊戲了...
06/11 15:17, 14F

06/11 15:17, , 15F
把系統戰爭作成3D的應該不錯
06/11 15:17, 15F
文章代碼(AID): #1FqfUFk5 (GameDesign)
文章代碼(AID): #1FqfUFk5 (GameDesign)