【发布时间】:2015-04-19 19:17:59
【问题描述】:
我是一个一般的编码初学者。这也是我第一次尝试用js做点什么;我想为一堆正方形设置动画以向页面上的某个点移动。我用谷歌搜索了很多东西,我写了这个,但它不起作用;谁能告诉我为什么这不起作用?
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var enemies =[];
for (var i = 0; i < 10; i++){
var randomX = Math.abs(Math.random());
var randomY = Math.abs(Math.random());
if (randomX > 100 && randomX < 1200){
if (randomX%2 == 0){
randomX = 140;
} else {
randomX = 1281;
}
}
if (randomY > 100 && randomY < 75){
if (randomY%2 == 0){
randomY = 15;
} else{
randomY = 560;
}
}
var enemy = new Enemy(randomX,randomY,0,0);
enemies.push(enemy);
}
var Enemy = function(x,y,velx,vely){
this.x = x;
this.y = y;
this.velx = 0;
this.vely = 0;
}
Enemy.prototype.update = function (){
var tx = 650 - this.x;
var ty = 250 - this.y;
var dist = Math.sqrt(tx*tx + ty*ty);
this.velx = (tx/dist);
this.vely = (ty/dist);
if (dist > 0){
this.x += this.velx;
this.y += this.vely;
}
};
Enemy.prototype.render = function(){
context.fillStyle = #000000;
context.rect(this.x,this.y,25,25);
context.fill();
};
function render(){
context.clearRect(0,0,canvas.width,canvas.height);
for (var i = 0; i < enemies.length; i++){
var one = enemies[i];
context.clearRect(one.x,one.y,25,25);
one.update();
one.render();
}
requestAnimationFrame(render);
}
render();
【问题讨论】:
-
context.fillStyle = '#000000'; - 在此处添加引号,然后重试....
-
谢谢,我完全错过了!但它仍然无法正常工作:(
-
您实际看到了什么样的结果?您能否更具体地说明什么有效或无效?
-
根据用户的建议更改代码后,我现在看到一个带有残像的黑色方块......所以我想我错误地清除了画布。不过,我试图做的是将 10 个正方形随机放置在向中心移动的边缘附近
标签: javascript animation canvas