Javascript p5.js 27646:未捕获类型错误:无法读取属性';0';未定义的
我用JavaScript p5.js编写代码时遇到了以下错误行: 27646:未捕获的TypeError:无法读取未定义的属性“0” 我不知道这意味着什么,因为我对JavaScript不是很有经验。这对我来说也是可疑的,因为我的项目在任何地方都没有27646行 这是我的密码:Javascript p5.js 27646:未捕获类型错误:无法读取属性';0';未定义的,javascript,typeerror,p5.js,Javascript,Typeerror,P5.js,我用JavaScript p5.js编写代码时遇到了以下错误行: 27646:未捕获的TypeError:无法读取未定义的属性“0” 我不知道这意味着什么,因为我对JavaScript不是很有经验。这对我来说也是可疑的,因为我的项目在任何地方都没有27646行 这是我的密码: var particles = []; const word0 = 'p5.js', word1 = 'is nice'; var active, inactive; var cooldown;
var particles = [];
const word0 = 'p5.js',
word1 = 'is nice';
var active, inactive;
var cooldown;
var font;
function preload() {
font = loadFont('data/LucidaSansRegular.ttf');
}
function setup() {
createCanvas(600, 300);
active = font.textToPoints(word0, 50, 200, 200);
inactive = font.textToPoints(word1, 50, 200, 200);
cooldown = 500;
for (var i = 0; i < active.length; i++) {
particles.push(new Particle(active[i].x, active[i].y));
}
}
function draw() {
background(60);
noStroke();
fill(255);
for (var i = 0; i < particles.length; i++) {
if (particle[i].radius < 0) {
particles.splice(i, 1);
continue;
}
if (cooldown < 0) {
particles[i].forceToDes();
} else {
particles[i].fleeFromDes();
}
particles[i].update();
particles[i].show();
}
if (cooldown < 500 && cooldown > -500) {
cooldown--;
} else {
cooldown++;
}
if (cooldown == -499) {
changeText();
}
}
function changeText() {
switchActive();
if (active.length == inactive.length) {
for (var i0 = 0; i0 < active.length; i0++) {
particles[i0].des = createVector(active[i0].x, active[i0].y)
}
} else if (active.length > inactive.length) {
for (var i1 = 0; i1 < particles.length; i1++) {
particles[i1].des = createVector(active[i1].x, active[i1].y);
}
for (var i2 = 0; i2 < active.length - inactive.length; i2++) {
var p = new Particle(active[i2].x, active[i2].y),
r = particles.random();
p.pos = r.pos;
particles.push(p);
}
} else {
for (var i3 = 0; i3 < inactive.length - active.length; i3++) {
var r = floor(random(particles.length));
particles[r].shrink();
}
for (var i4 = 0; i4 < particles.length; i4++) {
particles[i4].des = createVector(active[i4].x, active[i4].y);
}
}
}
function switchActive() {
var temp = active;
active = inactive;
inactive = temp;
}
var粒子=[];
const word0='p5.js',
word1=‘很好’;
var活跃,非活跃;
var冷却;
var字体;
函数预加载(){
font=loadFont('data/LucidaSansRegular.ttf');
}
函数设置(){
createCanvas(600300);
active=font.textToPoints(word0、50、200、200);
inactive=font.textToPoints(word1、50、200、200);
冷却时间=500;
对于(变量i=0;i-500){
冷却--;
}否则{
冷却++;
}
如果(冷却时间==-499){
changeText();
}
}
函数changeText(){
开关激活();
if(active.length==inactive.length){
对于(var i0=0;i0inactive.length){
对于(var i1=0;i1
我希望你能帮助我:)
已经谢谢你了 请将您的代码发布为我们可以复制并粘贴以运行的。当我试图运行你的代码时,我得到一个错误,因为我没有你试图加载的字体。要么包含字体文件,要么修改代码,这样我们就不需要字体文件 但只要看看你的代码,我就会明白:
for (var i = 0; i < particles.length; i++) {
if (particle[i].radius < 0) {
这里您正在设置一个尚未定义的变量
当您的代码包含多个类似这样的错误时,通常意味着您不是在进行小块测试。你真的应该养成独立工作的习惯,只测试一小部分,直到你的工作完美为止。这也让你在被卡住时更容易发布MCVE。你的问题是你的word1字符串中有一个空格 textToPoints()不处理不可打印的字符
尝试一个没有空格的字符串,或者将字符串拆分为多个字符串,然后合并点数组。在draw()循环的开始处
if(particle[i].radius<0){
应该是“particles”而不是“particle”啊,非常感谢。我认为错误消息是:如果“particle”是-问题是唯一的问题。@Steve就像我说的,如果你想让我们帮助你,你必须发布一个帖子。如果我们不能运行你的代码,我们无法帮助你。谢谢你为neAwesome修复了它。很高兴我能帮上忙。
r = particles.random();