iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
0
Modern Web

菜雞用 Phaser 拾起童年遊戲 系列 第 24

菜雞用 Phaser 拾起童年遊戲 24

今天我來給大家介紹一個功能,可以方便我們來管理我們的物件,也可以讓我們的 code 乾淨許多。

Photo by Konstantin Planinski on Unsplash

JSON 檔

我們常常會使用 json 來管理一些我們的靜態資料,我們也可以利用這點來管理我們一些比較不太會變動的資料,或是一些我們要創建固定的物件。

以往我們創建的時候,可能會這樣重複一直創建,看起來可能會有點繁瑣。

  platforms = this.physics.add.staticGroup();

  platforms.create(400, 568, "ground");
  platforms.create(600, 400, "ground");
  platforms.create(50, 250, "ground");
  platforms.create(750, 220, "ground");

如果我們利用他們 json 來做的話,可以讓我們的管理輕鬆許多,就會像是以下的方式,給大家參考參考。

json 格式

 {
    'platforms' : [
        { 'x': 180, 'y': 608, 'key': 'ground' },
        { 'x': 300, 'y': 500, 'key': 'ground' },
        { 'x': 50, 'y': 400, 'key': 'ground' }
        .....
    ]
}

佈置的方式

// 載入json
this.load.json('data','./assets/json/data.json');
...

gameData = this.cache.json.get('data');
plateformsData = gameData.platforms;

for (let i = 0;i < plateformsData.length;i++) {
    plateforms.create(plateformsData[i].x, plateformsData[i].y, plateformsData[i].key)
}

會是以這樣的方式來進行載入跟使用,給大家參考參考,我們就可以利用這樣的方式來創建地圖呀,或是一些複雜一點的場景,這樣就不會在程式碼裡面看到很多重複性的東西,而這些靜態的資料也可以統一管理,讓我們知道都去哪裡取得或是改變資料即可。

總結

這邊提供了大家一個我前面沒有用到的方式,大家可以試試看把這個加入我們的「打磚塊」當中,這樣就可以製作很多不同的關卡,又不用開很多個場景囉!

tags: Phaser Game 2020鐵人賽

上一篇
菜雞用 Phaser 拾起童年遊戲 23
下一篇
菜雞用 Phaser 拾起童年遊戲 25
系列文
菜雞用 Phaser 拾起童年遊戲 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
angelliya00
iT邦新手 4 級 ‧ 2020-10-07 11:14:10

想說要做第三個遊戲 w

Dino iT邦新手 5 級 ‧ 2020-10-07 11:16:57 檢舉

讓你失望了嗚嗚嗚/images/emoticon/emoticon02.gif
時間考量~怕來不及完成/images/emoticon/emoticon03.gif
(其實是想偷懶)/images/emoticon/emoticon14.gif

雷N iT邦研究生 1 級 ‧ 2020-10-07 12:57:55 檢舉

XDD
2位遊戲高手合體一下

Dino iT邦新手 5 級 ‧ 2020-10-07 13:12:13 檢舉

不敢當不敢當
小弟只有略懂略懂
高手雲集,小弟只是打雜的/images/emoticon/emoticon48.gif

我要留言

立即登入留言