javascript - 声明为现有数组不起作用
问题描述
在您阅读此代码并感到筋疲力尽之前,只需知道它是一个名为 p5.js 的开源 JavaScript 库
我有基本包,没有附加组件。看看这个...
var weapons = {
//[WEAPON NAME]: [accuracy,repeat,recoil,recoilmax,recoil-recovery,damage,firerate,reloadspeed],
M4A1: [10, 10, 0.2, 5, 1],
//primary: weapons.M4A1,//ERROR
//secondary: weapons.M4A1,//ERROR
equipped: weapons.M4A1,
};
var inventory = {
accuracy: weapons.M4A1[0],
accuracyREF: 10,
recoil: 0.2,
recoilMAX: 3,
recoilRecovery: 1,
damage: 1,
fireRate: 1,
};
显示一个空白屏幕,直到我摆脱声明武器的行。装备
我还尝试在 p5.JS 语法中使用如下所示的拼接,arrayCopy() 也一样
var weapons = {
//[WEAPON NAME]: [accuracy,repeat,recoil,recoilmax,recoil-recovery,damage,firerate,reloadspeed],
M4A1: [10, 10, 0.2, 5, 1],
//primary: weapons.M4A1,//ERROR
//secondary: weapons.M4A1,//ERROR
equipped: [0,0,0,0,0],
};
splice(weapons.M4A1, equipped, 0);
var inventory = {
accuracy: weapons.M4A1[0],
accuracyREF: 10,
recoil: 0.2,
recoilMAX: 3,
recoilRecovery: 1,
damage: 1,
fireRate: 1,
};
这对我的游戏至关重要,如果不能做到,我将不得不放弃它
解决方案
另一种使用getter 函数的解决方案。要了解为什么会出现错误,请查看@bloodyKnuckles 的答案。
var weapons = {
//[WEAPON NAME]: [accuracy,repeat,recoil,recoilmax,recoil-recovery,damage,firerate,reloadspeed],
M4A1: [10, 10, 0.2, 5, 1],
get primary() {
return weapons.M4A1
},
get secondary() {
return weapons.M4A1
},
get equipped() {
return weapons.M4A1
},
};
var inventory = {
accuracy: weapons.M4A1[0],
accuracyREF: 10,
recoil: 0.2,
recoilMAX: 3,
recoilRecovery: 1,
damage: 1,
fireRate: 1,
};
console.log("weapons", weapons);
console.log("inventory", inventory);
推荐阅读
- google-sheets - 将查询结果改写为时间
- kubernetes - Minikube 的 CoreDNS 无法从 JVM 解析名称
- java - 从内部将 url 记录到 Spring 控制器
- javascript - React Native firebase OTP 仅适用于测试号码,不适用于我的真实号码
- amazon-web-services - 如何在 common.tfvars 中注入环境变量
- sql-server - SSIS 包通过凭据帐户失败
- javascript - 从 Firebase 实时数据库中删除数据并在 javascript 中更新应用程序
- mysql - 三表连接查询不显示任何数据
- node.js - Microsoft Teams:为 NodeJS 机器人提供将自适应卡片转换为图像的可能性
- microsoft-graph-api - 未找到段“siteCollections”的资源