我的setIntervals()
. 我知道这些问题经常出现,但我似乎无法弄清楚我的实现的确切问题是什么。每次我实例化一个新的Obstacle()
时,它都会清除用于旋转障碍物实例的设置间隔,并且障碍物的下一个实例化似乎以两倍的速度旋转!我确定这与范围有关,但我是一个相对初学者,所以我不太确定这里发生了什么。可以提供更多信息。
var obstacleCount = 1;
function Obstacle(){
this.angle = 0;
this.id = obstacleCount;
this.elPrefix = "cookie-";
this.el = '.' + this.elPrefix + this.id;
$('#game-wrapper').append('<div class="' + this.elPrefix + this.id + '"></div>');
obstacleCount += 1;
}
var intervals = new Array();
Obstacle.prototype.roll = function() {
self = this;
intervals[self.id] = setInterval(function(){
self.angle -= 3;
$(self.el).rotate(self.angle);
}, 5);
$(self.el).animate({
right: 1000
}, 4000, 'linear', function(){
$(self.el).remove();
clearInterval(intervals[self.id]);
});
};
var obstacles = new Array();
setInterval(function(){
obstacleID = obstacleCount;
obstacles[obstacleID] = new Obstacle();
obstacles[obstacleID].roll();
}, 1000);