作者cowbaying (壓力太大 囧mmmmmmmmmmm)
看板GameDesign
標題Re: [請益] 關於人物移動的狀態機
時間Sat Jun 9 08:23:40 2012
其實你已經把整張圖寫進記憶體裡面了
只要運用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
推 Hevak:用他原本那種寫法的話就是把Role[]裡面塞[參數]比較快 06/09 08:59
→ yoll522:我之前也是用切割的方式來貼圖,我創了一堆陣列 06/10 18:42
→ yoll522:裡面都放了每張圖的x跟y的座標 06/10 18:42
→ yoll522:等這次期末考結束我再來研究陣列放x、y的座標 06/10 18:43
→ yoll522:還是陣列裡面直接放切好的圖,哪種比較有效率,謝謝 06/10 18:43
→ cowbaying:兩者效率要看你是否每次使用一次後就把記憶體釋放 06/10 18:56
→ cowbaying:如果程式在初始化的過程中就把圖像載入記憶體 06/10 18:57
→ cowbaying:而在程式結束前都不去釋放資源 那兩種效率是一樣的 06/10 18:57
→ Hevak:效率....可以設計一個計時測試跑看看 06/10 20:40
→ Hevak:不釋放的話,切好的圖應該會跟setclip差不多效果... 06/10 20:40
推 yoll522:可是setclip有辦法把圖存起來嗎?還是只能直接貼出去? 06/10 22:59
推 Hevak:setclip就是把圖持續在那邊,但是設定不同的顯示範圍 06/11 13:26
→ Hevak:他不是貼複本,他是調整顯示範圍... 06/11 13:26
→ cowbaying:看到這篇文章手癢想開始做3D遊戲了... 06/11 15:17
→ cowbaying:把系統戰爭作成3D的應該不錯 06/11 15:17