Так что я подумал, что у меня была идея перейти по ссылке вниз, но, похоже, я все еще немного борюсь с этим.
Вот моя проблема, я некоторое время отлаживал свою игру, и я целую вечность оставлял раздел с врагами в моем коде нетронутым. Это длинная история, но я думал, что мои снаряды наносят урон врагам, я изменил здоровье врагов до очень высокого, поэтому я подумал, что они наносят урон, но из-за высокого здоровья, а не убивают его. Только теперь я понял, что они не наносят ущерба и что код неверен: /
Так вот, где я начинаю:
void Towers::Update(std::vector<Enemies>& enemies, SDLib& lib, Map cMap)
Здесь я передаю врагов по ссылке, в мою функцию обновления. Который тогда я иду, чтобы видеть, есть ли враг в пределах досягаемости башни;
for (int numOfEnemies = 0; numOfEnemies < lib.numberOfEnemies; numOfEnemies++)
{
float y = pow(enemies[numOfEnemies].position.y - position.y, 2);
float x = pow(enemies[numOfEnemies].position.x - position.x, 2);
if (sqrt(y + x) < range && enemies[numOfEnemies].alive)
{
cEnemy = enemies[numOfEnemies];
acquiredTarget = true;
break;
}
}
cEnemy (currentEnemy), затем удерживает противника, находящегося в пределах досягаемости. После этого я создаю снаряд для стрельбы, и вот, думаю, я все испорчу;
bullet = Projectile((float)position.x, (float)position.y - 8, 8, 8, 0, 0, damage, 1, speed, cEnemy);
И аргументы функции для этого:
Projectile::Projectile(float x, float y, int w, int h, int sX, int sY, int dmg, int type, float mxSpeed, Enemies bulletTarget)
{
//....other values set.
target = bulletTarget;
}
(цель следующая)
Enemies target;
Идея в том, что цель должна содержать ссылку на первоначального врага, которого я установил с помощью функции ... Но она не работает так, как я хочу.
Я не слишком уверен, но я предполагаю, что здесь может потребоваться указатель. Кажется, из всей концепции, которую мне труднее всего понять *, и которая уже давно используется.
Любая помощь приветствуется!