Personaje *enemy= new[10] Personaje(app,"img/enemy.png");
Me da este error.
error: expected identifier before '[' token|
|3|error: expected `,' or `;' before "Personaje"|
Lo que pienso es que no se puede reservar memoria dándole un constructor.
Pongo aquí el código por si me estoy equivocando.
main.cpp
Código
gui.hpp
#include <iostream> #include <fstream> using namespace std; #include <SFML/Window.hpp> #include <SFML/Graphics.hpp> #include "personaje.hpp" #include "rsc/gui.hpp" int main(int *argc,char *argv[]){ sf::Clock _tiempo; sf::Event evento; sf::Event eventovacio; int _wapp=640; int _happ=480; float FPS=60; float ftime; app.Create(sf::VideoMode(640,480,32),"Invasores del Espacio"); _Declaracion();//botones while(1){ if(_wapp!=app.GetWidth()||_happ!=app.GetHeight()){ _wapp=app.GetWidth(); _happ=app.GetHeight(); app.Close(); app.Create(sf::VideoMode(_wapp,_happ,32),"RESOLUTION CHANGED"); } ftime=_tiempo.GetElapsedTime(); if(ftime>1.0/FPS){ _Eventos(app,evento); _Video(app,evento); _tiempo.Reset(); //para que solo ocurra 1 evento seguido evento=eventovacio; } } }
Código
personaje.hpp
sf::RenderWindow app; Personaje *pj=new Personaje(app,"img/nave.png",true,100,100); Personaje *enemy= new [10]Personaje(app,"img/enemy.png"); void _Declaracion() { }; void _Eventos(sf::RenderWindow &app,sf::Event &evento) { app.GetEvent(evento); if(evento.Type==sf::Event::KeyPressed && evento.Key.Code == 256 || evento.Type== sf::Event::Closed)exit(1); if(evento.Type==sf::Event::KeyPressed && evento.Key.Code == 'p'){ cout << "\n:::.PAUSED.:::\n"; while(1){ app.GetEvent(evento); if(evento.Type==sf::Event::KeyPressed && evento.Key.Code == 'p')break; if(evento.Type==sf::Event::KeyPressed && evento.Key.Code == 256 || evento.Type== sf::Event::Closed)exit(1); } } } void _Video(sf::RenderWindow &app,sf::Event &evento) { pj->Print(); app.Display(); };
Código
class Personaje { private: sf::RenderWindow *_app; sf::Sprite _S; sf::Image _I; bool _ON; public: Personaje(sf::RenderWindow&,char*); Personaje(sf::RenderWindow &,char*,bool,float,float); sf::Sprite GetSprite() {return _S; } void Print() {if(_ON==true)_app->Draw(GetSprite());} }; Personaje::Personaje(sf::RenderWindow &app,char *name){ _app=&app; _ON=false; _I.LoadFromFile(name); _I.SetSmooth(false); _S.SetImage(_I); }; Personaje::Personaje(sf::RenderWindow &app,char *name,bool on,float x,float y){ _app=&app; _ON=on; _I.LoadFromFile(name); _I.SetSmooth(false); _S.SetImage(_I); _S.SetPosition(x,y); };
PD: Espero solución gracias