LoginSignup
2
2

More than 5 years have passed since last update.

ENUMの便利な使い方「その2」

Last updated at Posted at 2013-04-17

その1で作ったEnumを今度は条件付けのフラグとして使う
こうやって使うというサンプルなので動きません

item2.js
var SLOT = {
 NONE : 0,
 EQUIP : 1,
 INVENTORY : 2,
 STORAGE : 3,
 _SIZEOF : 4,
};
var SLOT_FLAG = {
 NONE : 1<<SLOT.NONE,
 EQUIP : 1<<SLOT.EQUIP,
 INVENTORY : 1<<SLOT.INVENTORY,
 STORAGE : 1<<SLOT.STORAGE,
 WEAPONITEM : SLOT_FLAG.EQUIP | SLOT_FLAG.INVENTORY,//装備品は装備スロットとインベントリに設置可能
 EVENTITEM : SLOT_FLAG.INVENTORY,//イベントアイテムはインベントリに設置可能
 CONSUMPTIONITEM : SLOT_FLAG.INVENTORY|SLOT_FLAG.STORAGE,//消耗品はインベントリと倉庫に設置可能
};

function getSlotCond(item){
    switch(item.type){
    case ITEM_TYPE.WEAPON:
        return SLOT_FLAG.WEAPONITEM;
    case ITEM_TYPE.CONSUMPTION:
        return SLOT_FLAG.CONSUMPTIONITEM;
    case ITEM_TYPE.EVEMT:
        return SLOT_FLAG.EVENTITEM;
    }
    return 0;
}

function moveSlot(item,toslot){
    if(getSlotCond(item) & (1<<toslot)){
        item.slot_type = toslot;
        return true;
    }
    return false;
}
2
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2