Re: [請益] 關於人物移動的狀態機
※ 引述《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,但這似乎只能擷取圖片的位置後,就直接畫出去了
: 好像不能夠存到陣列裡@@
其實不需要把圖片再從畫面上擷取下來,這麼做效能會很差
繼續使用原本的12張圖就可以了
你第一步的構想是對的,先把12張圖從檔案中讀取出來,放進你的Role[]裡面
第二步,當你按上時就畫Role[]的012張圖
然後在畫的時後,把座標往上移就可以了,這樣子人物看起來就像是往上走了~
程式碼看起來就會像這樣
Image *Role = new Image[12];
Role[0] = new Image(L"路徑1");
Role[1] = new Image(L"路徑2");
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.225.76
推
06/09 07:11, , 1F
06/09 07:11, 1F
→
06/09 08:38, , 2F
06/09 08:38, 2F
→
06/09 08:39, , 3F
06/09 08:39, 3F
→
06/09 08:42, , 4F
06/09 08:42, 4F
推
06/10 18:36, , 5F
06/10 18:36, 5F
→
06/10 18:36, , 6F
06/10 18:36, 6F
討論串 (同標題文章)