У меня проблемы с удалением объекта при попадании в него другого объекта в деле .js.Я делал это с пересекающимися объектами, но это не работает для меня в деле.Должен ли я использовать границы?
Это злая игра с птицами, и у меня есть мяч с мышью и принуждением, которое действует как рогатка.Когда я отпускаю мяч, и мяч попадает в цель, я хочу, чтобы цель была удалена.Я пробовал пересекать объекты и использовать сплайс, но я думаю, что это не работает в файле ввода.js и может использовать другое решение.
class Targets {
constructor(x, y, r) {
this.body = Matter.Bodies.circle(x, y, r);
Matter.Body.setMass(this.body, this.body.mass * 4);
Matter.World.add(world, this.body);
this.x=x
this.y=y
this.r = r;
}
show() {
var pos = this.body.position;
var angle = this.body.angle;
push();
translate(pos.x, pos.y);
rotate(angle);
imageMode(CENTER);
image(dotImg, 0, 0, this.r * 2, this.r * 2);
pop();
}
hits(other) {
var d = dist(this.x, this.y, other.x, other.y);
if (d < this.r + other.r) {
return true;
} else {
return false;
}
}
}
class Bird {
constructor(x, y, r) {
var options = {
restitution: 0.2
}
this.body = Matter.Bodies.circle(x, y, r, options);
Matter.Body.setMass(this.body, this.body.mass * 4);
Matter.World.add(world, this.body);
this.x=x
this.y=y
this.r = r;
}
grow() {
this.r = this.r + 2;
}
show() {
var pos = this.body.position;
var angle = this.body.angle;
push();
translate(pos.x, pos.y);
rotate(angle);
imageMode(CENTER);
image(dotImg, 0, 0, this.r * 2, this.r * 2);
pop();
}
}
for (var i = 0; i < 4; i++) {
target[i] = new Targets(width / 1.5, height - i * 75, 25);
}
balls = new Bird(width / 4, height / 2, 25);
Draw(){
background(bkgImg);
Matter.Engine.update(engine);
balls.show()
for (var i = 0; i < balls.length; i++) {
balls[i].show();
for (var j = 0; j < target.length; j++) {
if (balls[i].hits(target[j])) {
target[j].splice(i,1);
}
}
}
for ( i = 0; i < target.length; i++) {
target[i].show();
}
}
Я ожидаю, что цель исчезнет/ быть сращенным, чтобы мяч не отскочил от цели.