p5.js は初めてで、毎日より多くのことを学ぼうとしています。基本的に、私は現在粒子システムとオブジェクトについて学んでおり、コードの量に戸惑っています。とにかく、関数 mousePressed() で、作成したパーティクル (パーティクル システム) の配列が表示されるようにしたいと思います。また、パーティクル システムがマウスの位置を追跡できれば素晴らしいと思います。したがって、基本的に、画面上でマウスをクリックすると、パーティクルがその位置に表示され、マウスを追跡します。
コードに何が欠けているのかわかりません。私はそれの半分が何をしているのかについて少し迷っています(私の教授はそれをたくさん書いていました)。mousePressed 関数を追加すると、すべてがポットに送られます。圧倒されすぎて、何が欠けているのかわからないような気がします。ヘルプに加えて、私が何をする必要があるか、およびそのソリューションが機能する理由についての詳細な洞察をいただければ幸いです。ありがとうございました!
var particles = [];
var now = null;
function setup() {
createCanvas(windowWidth, windowHeight);
}
function draw() {
background(255, 25, 25);
function mousePressed() {
particles.push(new Particle(new p5.Vector(mouseX, mouseY)));
//particles.push(new Particle(new p5.Vector(width / 2, height / 1.5)));
for (var i = 0; i < particles.length; i++) {
// if our particle is dead, remove it
if (particles[i].lifespan <= 0) {
//splice is a way of removing a specific
//element from an array
particles.splice(i, 2);
} else {
particles[i].update();
particles[i].display();
}
//this.particle = new ParticleSystem(createVector(mouseX, mouseY));
// patricles.push(p);
}
}
}
function Particle(loc) {
this.loc = loc;
this.acc = new p5.Vector();
this.vel = new p5.Vector(random(-100, 100), random(-2, 0));
this.lifespan = 555;
}
Particle.prototype = {
constructor: Particle,
update: function() {
this.vel.add(this.acc);
this.loc.add(this.vel);
this.lifespan -= 4.0;
},
display: function() {
stroke(random(0), this.lifespan);
fill(random(255), random(255), random(255))
ellipse(this.loc.x, this.loc.y, 20, 20);
}
}