你能在Code.org JS(游戏实验室)中重置World.frameCount吗



这个问题是针对我在Code.org的游戏实验室中开发的一款游戏。这个游戏就像跳伞游戏,障碍物以随机间隔(1000到3000毫秒之间(产生。这是代码:

World.frameRate = 10;
var rects = createGroup();
var timeout = Math.round(randomNumber(800, 3000) / 100) * 100;
function draw() {
background("white");
drawSprites();
if (World.frameCount === Math.round(randomNumber(1000, 3000) / 100) * 100) {
World.frameCount = 0;
creation();
}
}
function creation() {
var obstacle = createSprite(randomNumber(100, 300), 200, 50, 20);
obstacle.velocityY = -2;
}
/*
setInterval(function() {
creation();
}, Math.round(randomNumber(800,3000)/100)*100);
*/

为了创建生成机制,我尝试使用setInterval()setTimeout()函数,但使用这两个函数,在第一次执行时,它会创建一个随机数,然后继续以相同的间隔生成对象。我找不到任何解决办法,所以我转到了World.frameCount。然而,这个概念是有效的,由于===操作符,障碍物只会在1到3秒之间产生,3秒后,物体将无法产生。为了解决这个问题,我在第9行添加了(World.frameCount = 0;(。运行时,会产生一个错误:

ERROR: Line: 9: TypeError: Cannot set property frameCount of #<Object> which has only a getter

我知道这个错误是因为您无法更改World.frameCount的值。有什么解决办法吗?我也希望能就其他方式提出建议。

这是Code.org项目的链接:Skydive v1.0

我认为您不想设置World.frameCount。如果您想以可变的间隔生成对象,请使用以下方法:

(function timeoutHandler() {
creation();
setTimeout(timeoutHandler, randomNumber(800,3000)/100)*100);
})();

相关内容

  • 没有找到相关文章

最新更新