【问题标题】:How do you ACCESS Array Elements using Angelscript?你如何使用 Angelscript 访问数组元素?
【发布时间】:2018-04-03 19:04:04
【问题描述】:

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

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

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

显然这是通过使用来完成的

string[] inventory(2); 

这意味着 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.

【问题讨论】:

    标签: arrays multidimensional-array angelscript


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您的代码执行以下操作: 创建一个包含两个空字符串的字符串数组。 添加另外两个元素以使用 insertLast 结束数组。 之后,第 2、3 和 4 个元素被取消引用并打印。

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-24
        • 1970-01-01
        • 2012-08-29
        • 1970-01-01
        相关资源
        最近更新 更多