[問題] EnterFrame檢查物件狀態

看板Flash作者 (怪腳之哈比)時間13年前 (2011/10/11 23:45), 編輯推噓0(0016)
留言16則, 3人參與, 最新討論串1/1
最近小弟在做一個類似平台遊戲的作品 剛起步 在設定讓人物可以在平台上自由走動和跳躍 部分程式碼如下 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

10/11 23:49, , 1F
gotoAndStop就停了,本來就不會繼續撥動畫
10/11 23:49, 1F

10/11 23:52, , 2F
巢狀,你的player是單層的
10/11 23:52, 2F

10/11 23:52, , 3F
player第一格放站立mc,第二格放走路mc etc
10/11 23:52, 3F

10/11 23:53, , 4F
這樣就算player gotoAndStop(),裡面的mc還是會自轉
10/11 23:53, 4F
我就是這樣做...還是一樣耶@@

10/12 02:09, , 5F
ENTER_FRAME裡gotoAndStop會一直做 導致停在第一格
10/12 02:09, 5F
我也在想是不是這樣 請問有沒有比較好的寫法?

10/12 06:16, , 6F
此外真心建議原PO不要判定left跟right之後就改x跟影格
10/12 06:16, 6F

10/12 06:16, , 7F
在判定是否按下,然後確認移動vx之後還有很多事情要做
10/12 06:16, 7F

10/12 06:17, , 8F
建議作出假移動,等到整~個流程結束之後再結算
10/12 06:17, 8F

10/12 06:18, , 9F
(以上為前輩指導與類似產物寫作經驗)
10/12 06:18, 9F
K大 可以請問一下有關假移動的想法嗎?? 感謝> < ※ 編輯: weirdfoot 來自: 114.24.73.195 (10/12 22:14)

10/13 01:06, , 10F
一個流程內先宣告x跟y的"目標數值"
10/13 01:06, 10F

10/13 01:06, , 11F
接著判定按鍵對目標數值+-vx,做第一次目標預測
10/13 01:06, 11F

10/13 01:07, , 12F
接著針對各種情況,例如撞到牆或超出邊界等等
10/13 01:07, 12F

10/13 01:07, , 13F
再修正目標數值,做第二~N次目標預測
10/13 01:07, 13F

10/13 01:07, , 14F
等到整個流程跑完,目標預測確定是那個點之後
10/13 01:07, 14F

10/13 01:08, , 15F
再把那個目標座標直接指派給player的x跟y
10/13 01:08, 15F

10/13 01:08, , 16F
整個流程放在ENTER_FRAME裡面,稱為一次移動判定
10/13 01:08, 16F
文章代碼(AID): #1Eb6IEqY (Flash)
文章代碼(AID): #1Eb6IEqY (Flash)