Базовая функция не меняет члены производного класса [закрыто]C++

Программы на C++. Форум разработчиков
Anonymous
Базовая функция не меняет члены производного класса [закрыто]

Сообщение Anonymous »

Вот мой код обновления базовой функции.

Код: Выделить всё

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

Вернуться в «C++»