Merci Laurent,
Effectivement, je ne me suis jamais réellement familiarisé avec le debugger, je me suis toujours contenté de corriger les erreurs une à une en fonction des erreurs du compilo..
Je crains de te faire piquer tes beaux yeux, Laurent, mais je vais poster ici l'intégralité de ma source :
main.cpp#include <iostream>
#include <SFML/Graphics.hpp>
#include "MapDisplay.h"
#include "EventGestion.h"
using namespace std;
using namespace sf;
int main()
{
int WIDTH = 800, HEIGHT = 600;
RenderWindow app(VideoMode(WIDTH, HEIGHT, 32),"SFML Editeur de Maps", Style::Titlebar);
app.setFramerateLimit(60);
Clock clock;
MapDisplay MD(50,16,12);
EventGestion EG(MD);
while (app.isOpen())
{
Event event;
while (app.pollEvent(event))
{
if (event.type == event.Closed || Keyboard::isKeyPressed(Keyboard::Escape))
app.close();
}
app.clear();
EG.ecouteClavier(app);
EG.ecouteSouris(app);
MD.afficherMapConsole();
system("cls");
cout << " cube size : " << MD.getCubeSize() << endl;
cout << " Position souris x : " << MD.mouseX() << endl;
cout << " Position souris y : " << MD.mouseY() << endl;
if (MD.getCubeSize()>0)
{
MD.afficherMapWindow(app);
}
app.display();
}
}
EventGestion.cpp#include <SFML/Graphics.hpp>
#include "EventGestion.h"
#include <iostream>
using namespace std;
using namespace sf;
EventGestion::EventGestion(MapDisplay Map) :
MD(Map)
{
}
void EventGestion::ecouteClavier(RenderWindow &app)
{
}
void EventGestion::ecouteSouris(RenderWindow &app)
{
if (Mouse::isButtonPressed(Mouse::Left))
{
MD.ajouterBloc(app);
}
}
MapDisplay.cpp#include <SFML/Graphics.hpp>
#include "MapDisplay.h"
#include <iostream>
using namespace std;
using namespace sf;
MapDisplay::MapDisplay(int blocSize, int xMap, int yMap) :
m_blocSize(blocSize), m_xMap(xMap), m_yMap(yMap)
{
mapArea[m_xMap][m_yMap];
for (int y = 0 ; y < m_yMap ; y++)
{
for (int x = 0 ; x < m_xMap ; x++)
{
mapArea[y][x] = 0;
}
}
}
void MapDisplay::afficherMapConsole()
{
for (int y = 0 ; y < m_yMap ; y++)
{
for (int x = 0 ; x < m_xMap ; x++)
{
cout << mapArea[y][x];
}
cout << endl;
}
}
void MapDisplay::ajouterBloc(RenderWindow &app)
{
position.x = Mouse::getPosition(app).x;
position.y = Mouse::getPosition(app).y;
for (int i = 0 ; i < m_yMap ; i++)
{
for (int c = 0 ; c < m_xMap ; c++)
{
if ( i*50 == (position.y/m_blocSize)*m_blocSize
&& c*50 == (position.x/m_blocSize*m_blocSize))
{
RectangleShape *b = new RectangleShape(Vector2f(50,50));
b->setPosition(Vector2f(c*50, i*50));
Cube.push_back(*b);
}
}
}
}
void MapDisplay::afficherMapWindow(RenderWindow &app)
{
for ( int i = 0 ; i < Cube.size() ; i++ )
{
app.draw(Cube[i]);
}
}
int MapDisplay::getCubeSize() { return Cube.size(); }
int MapDisplay::mouseX() { return position.x; }
int MapDisplay::mouseY() { return position.y; }
Voilà, j'ai posté mes 3 fichiers CPP, je vous épargne les fichiers headers qui ne sont que de simples prototypes ainsi que les déclarations de mes variables utilisées dans mes méthodes.
Merci encore !!