Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sfml - funkcja przyjmująca sf::vector2f i odejmująca pewną liczbę od jego składników x,y - błąd

Ostatnio zmodyfikowano 2017-02-23 02:58
Autor Wiadomość
latajacaryba
Temat założony przez niniejszego użytkownika
Sfml - funkcja przyjmująca sf::vector2f i odejmująca pewną liczbę od jego składników x,y - błąd
» 2017-02-22 18:55:22
Witam, napisałem krótką funkcję, która odejmuje od obiektu vector2f pewną liczbę (podaną przez uzytkownika), jednak jest problem, wklejam kod i log:

C/C++
sf::Vector2f konwert( sf::Vector2f & vec, float & x )
{
    vec.x -= x;
    vec.y -= x;
    return vec;
}
// i miejsce bledu
if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::O )
{
    obrazek.setScale( konwert( obrazek.getScale(), 0.05 ) ); //odejmuje 0.05 od skladnikow wektora
}


E:\C++\sfml\smfl.cpp||In function 'int main()':|
E:\C++\sfml\smfl.cpp|60|error: invalid initialization of reference of type 'sf::Vector2f& {aka sf::Vector2<float>&}' from expression of type 'const Vector2f {aka const sf::Vector2<float>}'|
E:\C++\sfml\smfl.cpp|4|note: in passing argument 1 of 'sf::Vector2f konwert(sf::Vector2f&, float&)'|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|


Linia 4 to deklaracja funkcji konwert, a linia 60 to jej wywołanie.
W czym jest błąd?
P-158135
Saran
» 2017-02-22 19:22:54
W referencji, jak sam błąd mówi.
P-158137
michal11
» 2017-02-22 21:59:17
Przecież masz wszystko napisane, chcesz przekazać const referencję na Vector do funkcji która oczekuje referencji (i modyfikuje przesłany obiekt). Zresztą ta twoja funkcja jest trochę nielogiczna, zwracasz przez kopię obiekt który przekazujesz przez referencję, albo przekazuje przez const referencję i tylko z niego pobieraj dane (dobry pomysł) albo zwracaj void i modyfikuj przekazywany obiekt (gorszy pomysł).
P-158142
latajacaryba
Temat założony przez niniejszego użytkownika
» 2017-02-23 02:58:27
Nie zwróciłem przez referencje chyba z przyzwyczajenia ;p. Funkcja już poprawiona i działa. Dziękuję. Temat zamykam.
P-158149
« 1 »
  Strona 1 z 1