errores compilacion visual studio 2017

Iniciado por fumioli, 18 Enero 2018, 16:36 PM

0 Miembros y 1 Visitante están viendo este tema.

fumioli

Estoy tratando de compilar un juego de muestra de libreria SFML (asteroid), pero llevo atascado con error de compilación sin ver la salida, el error es este:

Gravedad   Código   Descripción   Proyecto   Archivo   Línea   Estado suprimido
Error   C2664   'game::Rock::Rock(game::Rock &&)': el argumento 1 no puede convertirse de 'sf::Vector2f' a 'sf::Vector2f &'   asteroid   c:\pruebas_sfml\asteroid\main.cpp   178   

la linea 178 es esta:

game::Rock* newRock = new game::Rock(sf::Vector2f(rock->getPosition().x, rock->getPosition().y),std::rand() % 360, rock->getRockLevel());


y el constructor que supuestamente origina el problema en archivo de cabecera Rock.h es:

Rock(sf::Vector2f& initial_position, float movement_angle, sf::Uint8 rock_level = 0);


el código completo esta aquí:

https://www.box.com/shared/static/1frlfyk3ruhxoud3sw3w.7z

y la pagina de donde he sacado el programa es esta:

http://comohacerjuegos.blogspot.com.es/2013/02/el-primer-juego-en-sfml-20-v.html


Cualquier ayuda es de agradecer, no se por donde meterle mano




 

MAFUS

No es que sepa de C++, pero parece ser que espera una variable de sf::Vector en vez de solo la generación in situ para tomar la referencia.

fumioli

yo también ando con lo justo en C++ y no veo la manera de poder darle lo que pide...

MAFUS

Debería generar antes de la llamada una variable vf::Vector con los datos y dársela como argumento a la función. Creo que así podría sortear ese fallo.

fumioli

Aparentemente lo he conseguido solucionar, lo que he hecho es retirar el carácter &  de Vector2f& tanto del constructor en Rock.h como en la definición de la función  constructor en Rock.cpp y el programa ha compilado bien..
Gracias por contestar.