矢量(vector)即是流動陣列,可以輕鬆進行「附加」、「插入」、「移除」的資料結構。進行上述動作後,矢量會自動更新其餘資料的位置。 因此你可以用矢量輕鬆模擬到堆疊(stack, first in last out)、佇列(queue, first in first out),配合指標(pointer,即是 { } 的一種用法)更可以造出物件矢量~ 下面例子使用vector.twf 函式庫事件 使用範例可以在vector.example.twf找到 下面說明都建基於此例:
1.附加 「附加」即是在矢量最後加上一個資料,並更新矢量長度 vector.name = "myVec" vector.value = "f" 執行vector.push 結果: 矢量myVec
2.插入 「插入」即是在矢量的某個位置i加上一個資料,將i之後的資料向後移一格並更新矢量長度 vector.name = "myVec" vector.value = "xd" vector.index = 2 執行vector.insert 結果: 矢量myVec
3.移除 「移除」即是把矢量的某個位置i的資料移除,將i之後的資料向前移一格並更新矢量長度 vector.name = "myVec" vector.index = 2 執行vector.erase 結果: 矢量myVec
程式介面說明: 函式庫容量:15
進階 - 物件矢量 使用 { } 便可以定義物件矢量 (以物件作為資料的矢量),例如可以用於製作背包 (超易弄,笑 例:我們要儲存一種物件,這種物件是武器(weapon),而儲存武器的矢量叫背包(pack)。 一個武器有以下資料: id: 武器種類編號 name: 名稱 damage: 傷害值 為每種武器建表 weapon
例: weapon.0.name = fist; weapon.0.damage = damage 玩家買了小刀 buy_weapon_id = 1; vector.name = "pack"; vector.value = "weapon.%{brought_weapon_id}%"; call vector.push 現在小刀成為了矢量pack第一個物件 in order to get the first weapon in pack, what you need to do is "{pack.0}", which will return "weapon.1". For example first weapon's damage will be {pack.0}.damage, which is equivalent to weapon.1.damage, returning value 15, and it is just going back to the basic application of {}. if now player buy gun, same thing, just change the value of buy_weapon_id: buy_weapon_id = 2; vector.name = "pack"; vector.value = "weapon.%{brought_weapon_id}%"; call vector.push When deleting the first element in the pack, vector.index = 0; call vector.delete; now knife is deleted from vector pack EASY! CONVENIENT! |
變數 >
矢量 (流動陣列)
FK 人 (Facebook人)
Sep 13, 2017, 3:40:04 PM
温馨提示:附加的話,手動比用函式更省容量和運算時間