我如何才能让一组中的精灵在绘制函数中只在随机位置生成一次?
How do I have it so that sprites in a group all spawn in random locations only once in the draw function?
我想在我的代码中使用它,以便组变量中的所有精灵在绘制函数中一次生成在不同位置。我目前遇到的问题是,由于绘图功能不断重复,因此所有精灵都在不断改变位置;正如您所想象的那样,它们在整个屏幕上快速移动。
drawSprites(toppingsGroup);
for (var i = 0; i < toppingsGroup.length; i++) {
toppingsGroup[i].position.x = 600;
toppingsGroup[i].position.y = random(height);
}
您有两个选择:
- 将随机位置代码移至
setup()
函数
- 将随机位置代码包装在 if 块中,使其只运行一次
选项 #1 很简单,但这是选项 #2 的示例
let groupPositioned = false;
function draw() {
if (!groupPositioned) {
for (var i = 0; i < toppingsGroup.length; i++) {
toppingsGroup[i].position.x = 600;
toppingsGroup[i].position.y = random(height);
}
groupPositioned = true;
}
drawSprites(toppingsGroup);
}
我想在我的代码中使用它,以便组变量中的所有精灵在绘制函数中一次生成在不同位置。我目前遇到的问题是,由于绘图功能不断重复,因此所有精灵都在不断改变位置;正如您所想象的那样,它们在整个屏幕上快速移动。
drawSprites(toppingsGroup);
for (var i = 0; i < toppingsGroup.length; i++) {
toppingsGroup[i].position.x = 600;
toppingsGroup[i].position.y = random(height);
}
您有两个选择:
- 将随机位置代码移至
setup()
函数 - 将随机位置代码包装在 if 块中,使其只运行一次
选项 #1 很简单,但这是选项 #2 的示例
let groupPositioned = false;
function draw() {
if (!groupPositioned) {
for (var i = 0; i < toppingsGroup.length; i++) {
toppingsGroup[i].position.x = 600;
toppingsGroup[i].position.y = random(height);
}
groupPositioned = true;
}
drawSprites(toppingsGroup);
}