gpt4 book ai didi

javascript - 无法读取未定义的属性 - p5js

转载 作者:行者123 更新时间:2023-12-03 05:26:52 24 4
gpt4 key购买 nike

我正在制作一个简单的扫雷游戏。我正在使用 p5js,但我不断收到此错误。 ## 未捕获的类型错误:无法读取未定义的属性“isMine”(…)sketch.js:34 ##。

sketch.js -

var cells = [];

function createCells() {
var x = 0;
var y = 0;

for(var i = 0; i < 100; i++) {
cells[i] = new Cell(x, y, 255);
x += 50;

if(x >= 500) {
y += 50;
x = 0;
}
}
}

function setup() {
createCanvas(501, 501);
frameRate(60);

createCells();

for(var i = 0; i < 5; i++) {
var rd = random(cells);
if(!cells[rd].isMine()) {
cells[rd].setMine();
} else {
i--;
}
}
}

function draw() {
background(50);

for(var i = 0; i < cells.length; i++) {
cells[i].show();
}
}

function mousePressed() {
for(var i = 0; i < cells.length; i++) {
if(mouseX < cells[i].x + cells[i].w && mouseX > cells[i].x) {
if(mouseY < cells[i].y + cells[i].h && mouseY > cells[i].y) {
if(!cells[i].mine) {
cells[i].cOlor = 'rgb(0, 153, 0)';
}
}
}
}
}

cell.js -

function Cell(x, y, cOlor) {
this.w = 50;
this.h = 50;
this.x = x;
this.y = y;
this.cOlor = cOlor;
this.mine = false;

this.setMine = function() {
this.mine = true;
}

this.isMine = function() {
return this.mine;
}

this.show = function() {
fill(this.cOlor);
stroke(0);
rect(this.x, this.y, this.w, this.h);
}
}

提前感谢您的帮助。 :)

最佳答案

random(cells) 返回数组的一个元素(Cell 对象),而不是索引。所以试试这个:

for(var i = 0; i < 5; i++) {
var cellRandom = random(cells);
if(!cellRandom.isMine()) {
cellRandom.setMine();
} else {
i--;
}
}

参见https://p5js.org/reference/#/p5/random

关于javascript - 无法读取未定义的属性 - p5js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41108540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com