Код: Выделить всё
void Enemy::update(Player p) {
point velo {
0,
0
};
point eCenter {
pos.x + width/2,
pos.y + height/2
};
point pCenter {
p.pos.x + p.width/2,
p.pos.y + p.height/2
};
// Moves towards the player
if (eCenter.x > pCenter.x)
velo.x -= speed;
else if (eCenter.x < pCenter.x)
velo.x += speed;
if (eCenter.y > pCenter.y)
velo.y -= speed;
else if (eCenter.y < pCenter.y)
velo.y += speed;
pos.x += velo.x;
pos.y += velo.y;
pos.x += 300; // Just a test to see if the sprite will move.
sprite.setPosition(pos.x, pos.y);
}
Код: Выделить всё
void Skeleton::update(Player p) {
Enemy::update(p);
}
Я распечатал значения pos.x через функцию, и значение сбрасывается каждый раз. раз оно выходит за рамки. sprite.setPosition() ничего не делает.
Подробнее здесь: https://stackoverflow.com/questions/786 ... ived-class