我如何使一个对象连续生成在koom .js



当我射击小行星时,它们消失了,这就是我想要的,但是我想要更多的小行星产卵,而不是永远消失。我不知道该在这段代码中添加什么来使更多的刷出进入游戏。

感谢您的帮助

我认为将小行星的数量设置为常量将确保屏幕上始终显示5个小行星,然而这似乎不起作用

// the asteroids
const NUM_ASTERIODS = 3;
for (let i = 0; i < NUM_ASTERIODS; i++) {
var spawnPoint = asteroidSpawnPoint();
var a = add([
sprite("asteroid"),
pos(spawnPoint),
rotate(rand(1,90)),
origin("center"),
area(),
scale(0.2),      
solid(),
"asteroid",
"mobile",
"wraps",
{
speed: rand(5, 10),
initializing: true
}
]);
while (a.isColliding("mobile")) {
spawnPoint = asteroidSpawnPoint();
a.pos = spawnPoint;
a.pushOutAll();
}
a.initializing = false;
a.pushOutAll();

}
function asteroidSpawnPoint() {
// spawn randomly at the edge of the scene
return choose([rand(vec2(0), vec2(width(), 0)),
rand(vec2(0), vec2(0, height())),
rand(vec2(0, height()), vec2(width(), height())),
rand(vec2(width(), 0), vec2(width(), height()))]);
}

我在尝试从屏幕顶部刷出连续精灵时也遇到了类似的问题。我发现以下代码可以在屏幕顶部(y轴)的随机位置(x轴)生成精灵。

Kaboom建议在他们的教程中使用递归函数中的wait()方法,这避免了使用循环并允许你控制刷出的频率。

function spawnAsteroid() {
add([sprite('asteroid'),
pos(rand(width()), 0),
origin(),
body(),
'dangerous'
])
wait(rand(0.5, 1), spawnAsteroid);
}
spawnAsteroid();

最新更新