想想基本的RPG游戏(我通过游戏化学得最好)……
请记住,游戏中的物品将以任何顺序随时被取出、使用和丢弃。所以我并不是想通过它们在数组中的数值位置来查找事物,而是严格地根据它们的对象变量名或其固有的属性值来查找和利用项。
我左右为难(a)将游戏项目作为字符串变量(如“poncho”)推入字符清单(对象中的数组),然后以某种方式将该字符串与实际项目(对象(如poncho))进行匹配,以访问和利用其属性/值(如character.inventory.poncho.value)……或者(b)将物品本身作为对象(如poncho)推入库存(数组),然后以某种方式在数组中访问它,以提取其值和属性(如名称:"Poncho")。
我手戳我的对象如下:
var poncho = {
name: "Poncho",
value: 3,
use: function() {}; //do somethin
}
var cigarillo = {
name: "Cigarillo",
value: 2,
use: function() {}; //do somethin
}
var bullet = {
name: "Bullet",
value: 1,
use: function() {}; //do somethin
}
现在如果我将(游戏世界中的“get”)字符串推入清单中,
var character01 = {
inventory [
"Poncho",
"Cigarillo",
"Bullet"
]
}
然后,我可以很容易地访问它们以用于显示,因为它们是字符串。例如:
document.getElementById("inventory_display").innerHTML = "Inventory: " + character01.inventory;
但是我被困在如何从清单中的"Poncho“中提取像character01.inventory.poncho.value这样的东西。
如果我像这样将项目推入:
var character01 = {
inventory [
poncho,
cigarillo,
bullet
]
}
我被困在如何显示清单中的名字:“Poncho”上。我知道它在object对象中,但不确定如何提取。
..。
所以简而言之。我是否将对象推入数组,然后以某种方式提取它们的属性/值?或者将一个字符串(名称:"Poncho")推入数组,然后以某种方式向后解构这些数组,以获得它们的对象(poncho)及其值/属性?(见鬼的是将对象存储/放置到数组中,以便以后访问,甚至是正确的方法?)
除了方法之外,我对也很感兴趣。我想如果我能弄清楚这一点,我将能够开始布局更多的系统(也就是了解更多)。
发布于 2018-09-22 04:10:34
This方法或多或少解决了我的所有问题(以及未来的一些问题):
发布于 2018-09-11 22:53:19
定义一个关联数组可能更好,其中键是显示名称("Poncho","Cigarillo"),值是您实际声明为变量的对象。
类似于:
var character01 = {
inventory: {
"Poncho" : {
name: "Poncho",
value: 3,
use: function() {}
},
"Cigarillo" : {
...
},
"Bullet" : {
...
}
}
}
允许您访问所有内容,例如:
character1.inventory["Poncho"].value
你应该得到"3“。
发布于 2018-09-13 17:22:26
您可以更改上面的代码以使用相同对象的数组。例如:
var character01 = {
inventory: {
"Gun" : [
{
name: "Gun",
value: 1,
use: function() {}
},
{
name: "Gun",
value: 0,
use: function() {}
},
{
name: "Gun",
value: 3,
use: function() {}
}
],
"Poncho" : [
{
name: "Poncho",
value: 1,
use: function() {}
},
{
name: "Poncho",
value: 2,
use: function() {}
},
{
name: "Poncho",
value: 3,
use: function() {}
}
]
}
}
当然,要引用项,您可以扫描数组或直接通过变量引用它们。
https://stackoverflow.com/questions/52156778
复制相似问题