iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 20
0

》Walking mechanics
今天我們要來繼續做之前有練習過的動畫,並套用在 player 身上,也會提起應該要注意的地方。像是判斷動畫執行、以及是否翻轉圖片(也可以直接在 sprite 做掉,額外做另外一個動畫)。

》Javascript 內容

scene.create = function() {
    .....
    // 鍵盤操作
    this.cursors = this.input.keyboard.createCursorKeys()
}
scene.update = function() {
    // 判斷鍵盤左鍵、右鍵
    if (this.cursors.left.isDown) {
        this.player.body.setVelocityX(-100)
    } else if (this.cursors.right.isDown) {
        this.player.body.setVelocityX(100)
    } else {
        // 如果不是左鍵或右鍵,需把速度改為零
        this.player.body.setVelocityX(0)
    }
}

接著我們要為 player 創建走路的動畫

scene.create = function() {
    this.anims.create({
        key: ‘walking’,
        frames: this.anims.generateFrameNames(‘player’, { frames: [1, 2 ]}),
        frameRate: 10,
        yoyo: true,
        repeat: -1
    })
}
scene.update = function() {
    // 判斷鍵盤左鍵、右鍵
    if (this.cursors.left.isDown) {
        .....
        this.player.anims.play(‘walking’)
    } else if (this.cursors.right.isDown) {
        .....
        this.player.anims.play(‘walking’)
    } else {
        .....
        this.player.anims.stop(‘walking’)
        this.player.setFrame(0)			// 顯示在第一張圖片上
    }
}

這時候還有一些存在的問題,還需要檢查動畫是否在進行中;另外 sprite 只有 player 向右走的圖片,並沒有向左走的圖片,所以這時還需要翻轉它。

if (this.player.anims.isPlaying) {
    // 依照 sprite 圖及左右鍵方向應有呈現的樣子,決定 flipX
    this.player.flipX = true				    
    this.player.anims.play(‘walking’)
}

》結論
今天我們學到了如何實施一個讓 player 步行的動畫,以及檢測鍵盤左右鍵按下時,該如何判斷並執行動畫。


今天就先到這裡,我們明天見。


上一篇
Day 19:Static and Dynamic Bodies [ 2 / 2 ]
下一篇
Day 21:Jump mechanics
系列文
Phaser 幫我撐個 30 天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言