我正在尝试模拟canvas
上的烟雾。我想创建一个新的烟雾并将其推入puffs数组但我不断收到"Uncaught TypeError: Type error"
错误。
谁知道我错过了什么?
var puffs = [];
this.tick = function() {
var puffLength = puffs.length;
if ( addPuffs && ( puffLength < maxParticles )) {
puffs.push({ //THIS ONE IT WHAT GIVES ME THE ERROR
posX: oPoint.x,
posY: oPoint.y,
scale: .1,
age: 0
});
}
for(var i = 0; i < puffLength; i++) {
var currentPuff = puffs[i];
if(currentPuff.age == maxLife) {
puffs.splice(i, 1);
} else {
currentPuff.posX += windX,
currentPuff.posY += windY,
currentPuff.scale += growingSpeed,
currentPuff.age++;
}
}
this.render();
}
答案 0 :(得分:1)
在提供的小提琴中,addPuffs
未定义。您需要根据业务逻辑定义此变量。此外,oPoint.x
和oPoint.y
未定义,还必须根据您的业务逻辑对其进行初始化。
var oPoint = {x:1, y:2}; //declare according to logic
var addPuffs = true; //some logic here
if ( addPuffs && ( puffLength < maxParticles )) {
puffs.push({ //THIS ONE IT WHAT GIVES ME THE ERROR
posX: oPoint.x,
posY: oPoint.y,
scale: .1,
age: 0
});
}
同样在drawImage()
上使用canvas
时,我认为第一个参数必须是DOM
元素,而不是图像的路径。
尝试:
var img = new Image();
img.src = "/static/img/particle.png";
//Omitted code
ctx.drawImage(img,80,80,1,1);