你如何使用Angelscript访问数组元素?

时间:2018-04-03 19:04:04

标签: arrays multidimensional-array angelscript

我正在尝试为我正在创建的游戏创建一个简单的库存系统。库存需要清单中每个项目的2条信息,“项目名称”和“项目描述”。

我从Angelscript网站上读到的信息说要创建

  

一个字符串数组,每个字符串包含2个元素。

显然这是通过使用

完成的
string[] inventory(2); 

这意味着2个元素是什么?
如何访问数组中的这两个元素?

下面的代码似乎有效,但是没有按照我的预期行事。

void Inventory(string item, string description) {
string[] inventory(2); // an array of string with 2 elements each. 

inventory.insertLast(item); // item name

inventory.insertLast(description); //item description

print("ID:"+ inventory[1]);
print("ID:"+ inventory[2]);
print("ID:"+ inventory[3]);
}

Inventory("gold_key",item);

输出

ID:
ID:gold_key
ID:Use this gold key to unlock a gold door.

2 个答案:

答案 0 :(得分:0)

我不确定您是否要这样做,但是可以使用arr_name [index]来访问数组。 而索引从0开始。 例如:

{
    string[] inventory(2);
    inventory[0] = "aaa";
    inventory[1] = "bbb";
    cout << "inventory include" << inventory[0] << "and" << inventory[1] << endl;
}

答案 1 :(得分:0)

您的代码执行以下操作: 用两个空字符串创建一个字符串数组。 添加其他两个元素以insertLast结束数组。 之后,第二,第三和第四元素被取消引用并打印。

它没有达到您的期望,因为: 1)这不是一个包含两个项目的字符串数组,而是一个包含两个项目的字符串数组。 2)您在两个空字符串之后的数组末尾添加项目和描述。 3)第一个元素的索引从0开始。

如果您真的想要一个二维数组,请尝试以下操作:

array<array<string>> inventory;
array<string> elem = {item, description};
inventory.insertLast(elem);
cout << inventory[0][0] << „: “ << inventory[0][1] << endl;