1、基於lufylegend引擎的魔塔遊戲開發(設計介紹)

使用的引擎

lufylegend
也是第一次寫rpg遊戲,主要是興趣使然
遊戲體驗地址(未完成)git

遊戲設計

  1. 遊戲圖層設計github

    var layers = {
      back: null,
      mapview: null,
      things: null,
      effect: null,
      talk: null,
    };

    遊戲圖層分爲了五層。
    分別是底層、地圖層、物品層、數據展現層、對話層。設計

  2. 遊戲數據存儲code

    globalData = {
      mapCol: 11,
      mapRow: 11,
      size: 32,
      floor: 0, 
      playerInfo: {
        HP: 1000,
        ATK: 10,
        DEF: 10,
        money: 0,
        XP: 0,
        status: 'ArrowDown',
        key: {
          yellow: 1,
          blue: 1,
          red: 1
        }
      },
      data: [{
        playerPosition: {
          x: 5,
          y: 10
        },
        map: [
          [1, 2, 2, 2, 2, 0, 2, 2, 2, 2, 1],
          [1, 2, 2, 2, 2, 0, 2, 2, 2, 2, 1],
          [1, 2, 2, 2, 2, 0, 2, 2, 2, 2, 1],
          [1, 2, 2, 2, 2, 0, 2, 2, 2, 2, 1],
          [1, 2, 2, 2, 2, 0, 2, 2, 2, 2, 1],
          [1, 2, 2, 2, 2, 0, 2, 2, 2, 2, 1],
          [1, 1, 2, 2, 2, 0, 2, 2, 2, 1, 1],
          [1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1],
          [3, 1, 3, 1, 0, 0, 0, 1, 3, 1, 3],
          [3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3],
          [3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3]
        ],
        things: [
          [0, 0, 0, 0, 0, "goods_0_1", 0, 0, 0, 0, 0],
          [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
          [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
          [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
          [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
          [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
          [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
          [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
          [0, 0, 0, 0, "npc3", 0, 0, 0, 0, 0, 0],
          [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
          [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
        ]
      }]
    }

    將遊戲涉及的全部數據存放到一個對象中,能夠在後期很方便的作遊戲進度保存。
    其中playerInfo爲角色的屬性信息。
    data爲全部地圖的信息對象

  3. 配置文件
    由於物品的功能和怪物的屬性是不固定的,因此須要手動編輯怪物的屬性以及定義物品拾取的handel方法遊戲

    var configGoods = {
      'goods_0_0': {
        x: 0,
        y: 0,
        handel: function() {
          globalData.floor--;
          gameInfo.floor.text = '第' + globalData.floor + '層';
          drawInit();
        }
      }
    }
    
    var configChara = {
      'monster0': {
        y: 6,
        HP: 50,
        ATK: 20,
        DEF: 1,
        money: 1,
        XP: 1
      }
    }
相關文章
相關標籤/搜索