iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 19
1

》tileSprite
今天我們要把 player 創建出來,把一些固定的靜態物件創建出來,並包含在 group 裡,方便於管理與效率。也會學到使用 tileSprite 來創建重複的物件。

》Javascript 內容
原本我們創建的 ground 如下

scene.create = function() {
    let ground = this.add.sprite(180, 400, 'tile')
    this.physics.add.existing(ground, true)

    let ground2 = this.physics.add.sprite(180, 200, 'tile')
    this.physics.add.collider(ground, ground2)
}

改變一下方式,使用 tileSprite 來使用一張圖片,創建重複的物件,來製作地面與磚塊台

scene.create = function() {
    // 製作地面
    let ground = this.add.tileSprite(180, 608, 64 * 6, 64, 'tile')		// 寬重複 6 份
    this.physics.add.existing(ground, true)

    this.player = this.add.sprite(180, 400, 'player', 0)		// 創建 player 第 0 張
    this.physics.add.existing(this.player)

    this.physics.add.collider(this.player, ground)			// 增加碰撞
}

我們可以再創建一些磚塊台,且用 group 來收納這些靜態物件

this.platforms = this.add.group()
.....
this.platforms.add(ground)			// 加入創建的 ground
let platform = this.add.tileSprite(180, 400, 64 * 2, 64, 'tile') 	// 創建一個磚塊台
this.physics.add.existing(platform, true)
this.platforms.add(platform)
.....
this.physics.addcollider(this.player, this.platforms)		// player 與 group 碰撞設定

》結論
我們這兩天主要練習到了靜態物件、取消重力、增加碰撞,且使用 tileSprite 有效率的創建重複的物件,並搭配 group 方式來管理整個靜態物件,就不用寫太多 collider 來針對各個物件的碰撞。
https://ithelp.ithome.com.tw/upload/images/20181103/20111617cuZSqgDP9k.png


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


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

尚未有邦友留言

立即登入留言