X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/graphlib.git/blobdiff_plain/4bdee7c3e2155dde84c2c22035754a96bc6b2515..bf102e71ae081f9c4c0323ac741b4cce49df56b6:/chateaux/chateaux.cpp diff --git a/chateaux/chateaux.cpp b/chateaux/chateaux.cpp index 64d1c01..89de6bd 100644 --- a/chateaux/chateaux.cpp +++ b/chateaux/chateaux.cpp @@ -22,6 +22,8 @@ const float hauteurMax = 130; const float largeurMin = 40; const float largeurMax = 150; +const float ventMax = 30; + const float largeurChateau = 8.5; const float hauteurChateau = 7; @@ -40,8 +42,8 @@ float largeurMont; float hauteurMont; float wnd; -/* Retourne un nombre pseudo-aléatoire compris entre 0 et le paramètre - * 'max' (exclus) +/* Retourne un nombre pseudo-aléatoire compris entre le paramètre + * 'min' (inclus) et le paramètre 'max' (exclus) */ float frand(float min, float max) { @@ -61,23 +63,23 @@ float deg2rad(float deg) // conversion coordonnées réelles -> coordonnées fenêtre int rtowX(const DrawingWindow& w, float rx) { - return (int )roundf(w.width * (rx - rXMin) / (rXMax - rXMin + 1.0)); + return (int )roundf((w.width - 1) * (rx - rXMin) / (rXMax - rXMin)); } int rtowY(const DrawingWindow& w, float ry) { - return (int )roundf(w.height * (rYMax - ry) / (rYMax - rYMin + 1.0)); + return (int )roundf((w.height - 1) * (rYMax - ry) / (rYMax - rYMin)); } -// conversion coordonnées réelles -> coordonnées fenêtre +// conversion coordonnées fenêtre -> coordonnées réelles float wtorX(const DrawingWindow& w, int wx) { - return (rXMax - rXMin + 1.0) * wx / w.width + rXMin; + return (rXMax - rXMin) * wx / (w.width - 1) + rXMin; } float wtorY(const DrawingWindow& w, int wy) { - return -(rYMax - rYMin + 1.0) * wy / w.height - rYMax; + return -(rYMax - rYMin) * wy / (w.height - 1) - rYMax; } float hauteurMontagne(float largeur, float hauteur, float x) @@ -202,7 +204,7 @@ void initialise(DrawingWindow& w) { largeurMont = frand(largeurMin, largeurMax); hauteurMont = frand(hauteurMin, hauteurMax); - wnd = frand(-30, 30); + wnd = frand(-ventMax, ventMax); w.setBgColor("skyblue"); w.clearGraph(); dessineTerrain(w, largeurMont, hauteurMont); @@ -247,7 +249,7 @@ int tir(DrawingWindow& w, vy += ay * dt; w.msleep(10); - w.sync(); +// w.sync(); w.setColor("skyblue"); w.fillCircle(wx, wy, 2); // w.setColor("black"); @@ -281,6 +283,7 @@ int jeu1(DrawingWindow& w) do { joueur = 3 - joueur; + w.sync(); std::cout << "-=| Joueur " << joueur << " |=-"; float alpha; @@ -312,11 +315,11 @@ int jeu1(DrawingWindow& w) } while (!perdant); dessineFlammes(w, x, y); std::stringstream msg; - msg << "Joueur " << perdant; + msg << " Joueur " << perdant; if (perdant == joueur) - msg << " s'est suicidé !"; + msg << " s'est suicidé ! "; else - msg << " a perdu !"; + msg << " a perdu ! "; w.setColor("darkred"); w.setBgColor("white"); w.drawTextBg(w.width / 2, w.height / 3, msg.str().c_str(),