Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: fumioli en 18 Enero 2018, 16:36 pm



Título: errores compilacion visual studio 2017
Publicado por: fumioli en 18 Enero 2018, 16:36 pm
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




 


Título: Re: errores compilacion visual studio 2017
Publicado por: MAFUS en 18 Enero 2018, 17:24 pm
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.


Título: Re: errores compilacion visual studio 2017
Publicado por: fumioli en 18 Enero 2018, 18:18 pm
yo también ando con lo justo en C++ y no veo la manera de poder darle lo que pide...


Título: Re: errores compilacion visual studio 2017
Publicado por: MAFUS en 18 Enero 2018, 21:16 pm
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.


Título: Re: errores compilacion visual studio 2017
Publicado por: fumioli en 19 Enero 2018, 23:25 pm
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.