C++ не удается определить экземпляр перегруженная функция, использование которого предполагается?
Выдаёт ошибку в классе Player: C++ не удается определить экземпляр перегруженная функция, использование которого предполагается.
Вот сам код:
class Player : public Entity
{
private:
float x, y;
Player(Image& image, float X, float Y, int W, int H, String Name) :Entity(image, X, Y, W, H, Name)
{
playerScore = 0; state = STAY;
if (name == "Player1")
{
sprite.setTextureRect(IntRect(4, 19, w, h));
}
}
void control()
{
if (Keyboard::isKeyPressed)
{
if (Keyboard::isKeyPressed(Keyboard::Left))
{
state = LEFT; speed = 0.1;
}
if (Keyboard::isKeyPressed(Keyboard::Right))
{
state = RIGHT; speed = 0.1;
}
if ((Keyboard::isKeyPressed(Keyboard::Up)) && (onGround))
{
state = JUMP; dy = -0.6; onGround = false;
}
if (Keyboard::isKeyPressed(Keyboard::Down))
{
state = DOWN;
}
}
}
void update(float time)
{
control();
switch (state)
{
case RIGHT:dx = speed; break;
case LEFT:dx = -speed; break;
case UP: break;
case DOWN: dx = 0; break;
case STAY: break;
}
x += dx * time;
checkCollisionWithMap(dx, 0);
y += dy * time;
checkCollisionWithMap(0, dy);
sprite.setPosition(x + w / 2, y + h / 2);
if (health <= 0) { life = false; }
if (!isMove) { speed = 0; }
//if (!onGround) { dy = dy + 0.0015*time; }
if (life) { setPlayerCoordinateForView(x, y); }
dy = dy + 0.0015 * time;
}
void interactionWithMap()
{
for (int i = y / 32; i < (y + h) / 32; i++)
for (int j = x / 32; j < (x + w) / 32; j++)
{
if (TileMap[i][j] == '0')
{
if (dy > 0)
{
y = i * 32 - h;
}
if (dy < 0)
{
y = i * 32 + 32;
}
if (dx > 0)
{
x = j * 32 - w;
}
if (dx < 0)
{
x = j * 32 + 32;
}
}
if (TileMap[i][j] == 'f')
{
health -= 40;
TileMap[i][j] = ' ';
}
if (TileMap[i][j] == 'h')
{
health += 40;
TileMap[i][j] = ' ';
}
}
}
void checkCollisionWithMap(float Dx, float Dy)
{
for (int i = y / 32; i < (y + h) / 32; i++)
for (int j = x / 32; j < (x + w) / 32; j++)
{
if (TileMap[i][j] == '0')
{
if (Dy > 0) { y = i * 32 - h; dy = 0; onGround = true; }
if (Dy < 0) { y = i * 32 + 32; dy = 0; }
if (Dx > 0) { x = j * 32 - w; }
if (Dx < 0) { x = j * 32 + 32; }
}
//else { onGround = false; }//надо убрать т.к мы можем находиться и на другой поверхности или платформе которую разрушит враг
}
}