Я использую библиотеку p5. js andatter. js (liabru).
Следующее сообщение возвращает ошибку «Не удается прочитать свойство 'position' of undefined»
jump(){
this.body.position.y -= 20
}
пока что, когда он вставлен в функцию отображения, например
display(){
var angle = this.body.angle;
push();
translate(this.body.position.x, this.body.position.y);
rotate(angle);
imageMode(CENTER);
image(this.image, 0, 0, this.width, this.height);
this.body.position.y -= 20
pop();
}
, похоже, он работает нормально.
Код всего класса
class Player {
constructor(x, y, width, height, angle) {
var options = {
'restitution':0.8,
'friction':1.0,
'density':1.0
}
this.body = Bodies.rectangle(x, y, width, height, options);
this.width = width;
this.height = height;
this.image = loadImage("images/bike.png");
World.add(world, this.body);
}
display(){
var angle = this.body.angle;
push();
translate(this.body.position.x, this.body.position.y);
rotate(angle);
imageMode(CENTER);
image(this.image, 0, 0, this.width, this.height);
pop();
}
jump(){
this.body.position.y -= 20
}
shoot() {
bullet1 = new bullet(displayWidth/4,displayHeight-500,100,100)
var force = 10;
var deltaVector = Matter.Vector.sub(mouse.position, bullet1.position);
var normalizedDelta = Matter.Vector.normalise(deltaVector);
var forceVector = Matter.Vector.mult(normalizedDelta, force);
Matter.bullet1.applyForce(bullet1.body, bullet1.position, forceVector);
}
}