看板 Flash 關於我們 聯絡資訊
最近小弟在做一個類似平台遊戲的作品 剛起步 在設定讓人物可以在平台上自由走動和跳躍 部分程式碼如下 stage.addEventListener(Event.ENTER_FRAME,playerMode); function playerMode(event:Event) { if (left) { player.x-=vx; player.gotoAndStop(10); } if (right) { player.x+=vx; player.gotoAndStop(5); } if (! left && ! right) { player.gotoAndStop(1); } } 其中left right各為按下左右方向鍵後改變的布林值變數 但我原本是想設計 人物在待命和走路時各有動畫在進行 (呼吸 腳部運動) (是弄成影片片段放在player元件中) 寫成這樣後 變成角色不會做呼吸那些動作了... 懇請各位大大指出錯誤處或寫得不適當的地方 感謝!! >"< (如不清楚 我可以附上原始檔) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.24.65.182
dsmwang:gotoAndStop就停了,本來就不會繼續撥動畫 10/11 23:49
KawasumiMai:巢狀,你的player是單層的 10/11 23:52
KawasumiMai:player第一格放站立mc,第二格放走路mc etc 10/11 23:52
KawasumiMai:這樣就算player gotoAndStop(),裡面的mc還是會自轉 10/11 23:53
我就是這樣做...還是一樣耶@@
emily114005:ENTER_FRAME裡gotoAndStop會一直做 導致停在第一格 10/12 02:09
我也在想是不是這樣 請問有沒有比較好的寫法?
KawasumiMai:此外真心建議原PO不要判定left跟right之後就改x跟影格 10/12 06:16
KawasumiMai:在判定是否按下,然後確認移動vx之後還有很多事情要做 10/12 06:16
KawasumiMai:建議作出假移動,等到整~個流程結束之後再結算 10/12 06:17
KawasumiMai:(以上為前輩指導與類似產物寫作經驗) 10/12 06:18
K大 可以請問一下有關假移動的想法嗎?? 感謝> < ※ 編輯: weirdfoot 來自: 114.24.73.195 (10/12 22:14)
KawasumiMai:一個流程內先宣告x跟y的"目標數值" 10/13 01:06
KawasumiMai:接著判定按鍵對目標數值+-vx,做第一次目標預測 10/13 01:06
KawasumiMai:接著針對各種情況,例如撞到牆或超出邊界等等 10/13 01:07
KawasumiMai:再修正目標數值,做第二~N次目標預測 10/13 01:07
KawasumiMai:等到整個流程跑完,目標預測確定是那個點之後 10/13 01:07
KawasumiMai:再把那個目標座標直接指派給player的x跟y 10/13 01:08
KawasumiMai:整個流程放在ENTER_FRAME裡面,稱為一次移動判定 10/13 01:08