Premières optimisations + renommage des valeurs des enumérations !
This commit is contained in:
parent
a327c9d869
commit
28630c784b
@ -9,11 +9,9 @@ void affichageMenuContinu(sfRenderWindow *const window, sfRenderTexture *renderT
|
||||
sfFont* font = loadFontFromFile(REGULARFONTPATH);
|
||||
|
||||
sfText* monTexte1 = creerTexte((sfVector2f){50.f, 100.f}, "Tapez 'M' pour l'affichage en continu", font, 30, sfBlack);
|
||||
sfRenderTexture_drawText(renderTexture,monTexte1, NULL);
|
||||
sfRenderTexture_drawText(renderTexture, monTexte1, NULL);
|
||||
sfText* monTexte2 = creerTexte((sfVector2f){50.f, 200.f}, "Tapez 'L' pour afficher un point a chaque fois que vous presserez la fleche droite", font, 30, sfBlack);
|
||||
sfRenderTexture_drawText(renderTexture,monTexte2, NULL);
|
||||
|
||||
sfFont_destroy(font);
|
||||
sfRenderTexture_drawText(renderTexture, monTexte2, NULL);
|
||||
|
||||
sfRenderTexture_display(renderTexture);
|
||||
|
||||
@ -25,6 +23,10 @@ void affichageMenuContinu(sfRenderWindow *const window, sfRenderTexture *renderT
|
||||
*renderSprite = loadSpriteFromRenderTexture(renderTexture);
|
||||
|
||||
displayBackgroundSprite(window, *renderSprite);
|
||||
|
||||
sfFont_destroy(font);
|
||||
sfText_destroy(monTexte1);
|
||||
sfText_destroy(monTexte2);
|
||||
}
|
||||
|
||||
|
||||
@ -42,7 +44,7 @@ Point** affichageLogs(sfRenderWindow *const window, sfRenderTexture *renderTextu
|
||||
}
|
||||
|
||||
// On réactive la répétition de touches pour l'affichage pas-à-pas...
|
||||
if(mode == PBP_MANUAL)
|
||||
if(mode == MODE_PBP_MANUAL)
|
||||
{
|
||||
sfRenderWindow_setKeyRepeatEnabled(window, true);
|
||||
}
|
||||
@ -57,7 +59,7 @@ Point** affichageLogs(sfRenderWindow *const window, sfRenderTexture *renderTextu
|
||||
}
|
||||
|
||||
// En mode point-par-point, il faut commencer par ré-afficher l'ancienne texture !
|
||||
if(mode == PBP_AUTOMATIC || mode == PBP_MANUAL)
|
||||
if(mode == MODE_PBP_AUTOMATIC || mode == MODE_PBP_MANUAL)
|
||||
{
|
||||
sfRenderTexture_display(renderTexture);
|
||||
|
||||
@ -74,8 +76,8 @@ Point** affichageLogs(sfRenderWindow *const window, sfRenderTexture *renderTextu
|
||||
sfRenderWindow_display(window);
|
||||
}
|
||||
|
||||
// En mode GLOBAL, on n'affiche pas les points formant un agglomérats, la fin du corps de la fonction s'en chargera...
|
||||
if(mode == GLOBAL && tabPoint[i].type == AGGLOMERAT)
|
||||
// En mode MODE_GLOBAL, on n'affiche pas les points formant un agglomérats, la fin du corps de la fonction s'en chargera...
|
||||
if(mode == MODE_GLOBAL && tabPoint[i].type == AGGLOMERAT)
|
||||
{
|
||||
nbPtsNonAffiches++;
|
||||
continue;
|
||||
@ -87,7 +89,7 @@ Point** affichageLogs(sfRenderWindow *const window, sfRenderTexture *renderTextu
|
||||
tmpPtsAffiches[i - nbPtsNonAffiches] = tabPoint + i;
|
||||
}
|
||||
|
||||
if(mode == PBP_MANUAL)
|
||||
if(mode == MODE_PBP_MANUAL)
|
||||
{
|
||||
// On attend que la touche flèche droite soit appuyée pour afficher le point, et ce pour chaque point !
|
||||
do
|
||||
@ -128,8 +130,8 @@ Point** affichageLogs(sfRenderWindow *const window, sfRenderTexture *renderTextu
|
||||
}
|
||||
}
|
||||
|
||||
// Pour le mode GLOBAL, une fois l'affichage terminé, on y rajoute les agglomérats
|
||||
if(mode == GLOBAL)
|
||||
// Pour le mode MODE_GLOBAL, une fois l'affichage terminé, on y rajoute les agglomérats
|
||||
if(mode == MODE_GLOBAL)
|
||||
{
|
||||
for(uint32_t i = 0; i < nbAgglos; i++)
|
||||
{
|
||||
@ -152,7 +154,7 @@ Point** affichageLogs(sfRenderWindow *const window, sfRenderTexture *renderTextu
|
||||
sfRenderWindow_display(window);
|
||||
|
||||
// On re-désactive la répétition de touches pour la suite du programme...
|
||||
if(mode == PBP_MANUAL)
|
||||
if(mode == MODE_PBP_MANUAL)
|
||||
{
|
||||
sfRenderWindow_setKeyRepeatEnabled(window, false);
|
||||
}
|
||||
|
@ -89,10 +89,10 @@ ErrEnum controlePoints(sfRenderWindow *window, const char *cheminFichier, Mode m
|
||||
do
|
||||
{
|
||||
// Petite magie noire ici: en fonction de la valeur de `action` de l'itération précédente...
|
||||
if(action == ZOOM_IN || action == ZOOM_OUT)
|
||||
if(action == ACTION_ZOOM_IN || action == ACTION_ZOOM_OUT)
|
||||
{
|
||||
// ... et en fonction du sens de rotation de la molette (renvoyé par `waitingOnMapEvent`, on agrandit ou diminue le zoom)
|
||||
carte->zoom += (action == ZOOM_IN ? 1 : -1);
|
||||
carte->zoom += (action == ACTION_ZOOM_IN ? 1 : -1);
|
||||
|
||||
// On convertit cette position en coordonnées GPS, et on stocke les valeurs dans la structure représentant (le nouveau) point central de la carte
|
||||
conversionPixelsCoordonnees(&carte->pointCentral, &(sfVector2f){(double)event.mouseWheel.x, (double)event.mouseWheel.y}, &carte->pointCentral, carte->echelle);
|
||||
@ -103,7 +103,7 @@ ErrEnum controlePoints(sfRenderWindow *window, const char *cheminFichier, Mode m
|
||||
centerCursor = true;
|
||||
}
|
||||
|
||||
else if(action == CHANGE_MAP_TYPE)
|
||||
else if(action == ACTION_CHANGE_MAP_TYPE)
|
||||
{
|
||||
// Do nothing... everything is managed elsewhere !
|
||||
}
|
||||
@ -133,9 +133,9 @@ ErrEnum controlePoints(sfRenderWindow *window, const char *cheminFichier, Mode m
|
||||
afficherCarte(renderTexture, &carte->mapTexture, &carte->mapSprite, MAPFILE);
|
||||
|
||||
// Sert à indiquer si l'utilisateur pourra zoomer ou non (au clic) sur la carte
|
||||
action = (carte->zoom < ZOOMAX ? ZOOMABLE : UNZOOMABLE);
|
||||
action = (carte->zoom < ZOOMAX ? ACTION_ZOOMABLE : ACTION_UNZOOMABLE);
|
||||
|
||||
if(mode == GLOBAL || mode == PBP_AUTOMATIC || mode == PBP_MANUAL)
|
||||
if(mode == MODE_GLOBAL || mode == MODE_PBP_AUTOMATIC || mode == MODE_PBP_MANUAL)
|
||||
{
|
||||
nbPointAgglosMin = getMinAgglo(agglos, nbAgglos);
|
||||
|
||||
@ -166,15 +166,15 @@ ErrEnum controlePoints(sfRenderWindow *window, const char *cheminFichier, Mode m
|
||||
|
||||
switch(action)
|
||||
{
|
||||
case QUIT:
|
||||
case ACTION_QUIT:
|
||||
// L'utilisateur a décidé de quitter cette vue de la carte !
|
||||
flag = SUCCESS;
|
||||
keepGoing = false;
|
||||
break;
|
||||
|
||||
case ZOOM_IN:
|
||||
case ZOOM_OUT:
|
||||
case ZOOM_ZONE:
|
||||
case ACTION_ZOOM_IN:
|
||||
case ACTION_ZOOM_OUT:
|
||||
case ACTION_ZOOM_ZONE:
|
||||
afficherSablier(window, renderTexture, &renderSprite);
|
||||
|
||||
// L'utilisateur a effectué un zoom sur la carte (et il est autorisé à le faire)
|
||||
@ -195,28 +195,28 @@ ErrEnum controlePoints(sfRenderWindow *window, const char *cheminFichier, Mode m
|
||||
conversionRec(&carre, &carte->pointHautGauche, &carte->pointBasDroite, &carte->pointCentral, carte->echelle);
|
||||
|
||||
// Après le zoom, quelque soit le mode initial, on partira toujours de l'affichage global
|
||||
mode = GLOBAL;
|
||||
mode = MODE_GLOBAL;
|
||||
break;
|
||||
|
||||
case ZOOM_NEXT:
|
||||
case ZOOM_PREV:
|
||||
case ACTION_ZOOM_NEXT:
|
||||
case ACTION_ZOOM_PREV:
|
||||
// L'utilisateur a changé de vue sur la fenêtre --> 0n libère la mémoire des éléments actuellement affichés !
|
||||
libererMemoireElementsAffiches(carte, MAPFILE, nbPointsAffiches, tabPointeursCercles);
|
||||
|
||||
// L'utilisateur a demandé d'afficher la vue précédente / suivante. Donc on commence par empiler la vue actuelle dans la pile des suivantes / précédentes.
|
||||
if(!empilerPileCartes((action == ZOOM_NEXT ? &previous : &next), carte))
|
||||
if(!empilerPileCartes((action == ACTION_ZOOM_NEXT ? &previous : &next), carte))
|
||||
{
|
||||
/* AFFICHER UN MESSAGE CAR IMPOSSIBLE DE ZOOMER ??? */
|
||||
break;
|
||||
}
|
||||
|
||||
// La prochaine vue correspond donc à la dernière empilée dans les suivantes / précédentes
|
||||
carte = depilerPilesCartes((action == ZOOM_NEXT ? &next : &previous));
|
||||
carte = depilerPilesCartes((action == ACTION_ZOOM_NEXT ? &next : &previous));
|
||||
|
||||
// Gestion de la pile vide: On remet la vue que l'on a précédemment empilée (avantage: aucune variable temporaire)
|
||||
if(carte == NULL)
|
||||
{
|
||||
carte = depilerPilesCartes((action == ZOOM_NEXT ? &previous : &next));
|
||||
carte = depilerPilesCartes((action == ACTION_ZOOM_NEXT ? &previous : &next));
|
||||
}
|
||||
|
||||
else
|
||||
@ -226,7 +226,7 @@ ErrEnum controlePoints(sfRenderWindow *window, const char *cheminFichier, Mode m
|
||||
}
|
||||
break;
|
||||
|
||||
case CHANGE_MAP_TYPE:
|
||||
case ACTION_CHANGE_MAP_TYPE:
|
||||
afficherSablier(window, renderTexture, &renderSprite);
|
||||
|
||||
if(++carte->type == LASTYPE)
|
||||
|
@ -65,21 +65,21 @@ Rectangle waitingOnMap(sfRenderWindow *const window, sfEvent *const event, sfRen
|
||||
displayBackgroundSprite(window, renderSprite);
|
||||
}
|
||||
|
||||
else if(sfMouse_isButtonPressed(sfMouseLeft) && *action == ZOOMABLE)
|
||||
else if(sfMouse_isButtonPressed(sfMouseLeft) && *action == ACTION_ZOOMABLE)
|
||||
{
|
||||
Rectangle carre = selectionRectangle(window, event, renderSprite, true);
|
||||
|
||||
// Si l'utilisateur a réellement sélectionné une zone...
|
||||
if(carre.positionHG.x != 0.0 && carre.positionHG.y != 0.0 && carre.positionBD.x != 0.0 && carre.positionBD.y != 0.0)
|
||||
{
|
||||
*action = ZOOM_ZONE;
|
||||
*action = ACTION_ZOOM_ZONE;
|
||||
return carre;
|
||||
}
|
||||
}
|
||||
|
||||
else if(event->type == sfEvtMouseWheelMoved)
|
||||
{
|
||||
*action = (event->mouseWheel.delta > 0 ? ZOOM_IN : ZOOM_OUT);
|
||||
*action = (event->mouseWheel.delta > 0 ? ACTION_ZOOM_IN : ACTION_ZOOM_OUT);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -87,13 +87,13 @@ Rectangle waitingOnMap(sfRenderWindow *const window, sfEvent *const event, sfRen
|
||||
{
|
||||
if(sfKeyboard_isKeyPressed(sfKeyBack))
|
||||
{
|
||||
*action = QUIT;
|
||||
*action = ACTION_QUIT;
|
||||
break;
|
||||
}
|
||||
|
||||
else if(sfKeyboard_isKeyPressed(sfKeySpace))
|
||||
{
|
||||
*action = CHANGE_MAP_TYPE;
|
||||
*action = ACTION_CHANGE_MAP_TYPE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -177,13 +177,13 @@ Rectangle waitingOnMapEvent(sfRenderWindow *const window, sfEvent *const event,
|
||||
|
||||
else if(sfKeyboard_isKeyPressed(sfKeyBack))
|
||||
{
|
||||
*action = QUIT;
|
||||
*action = ACTION_QUIT;
|
||||
break;
|
||||
}
|
||||
|
||||
else if(sfKeyboard_isKeyPressed(sfKeySpace))
|
||||
{
|
||||
*action = CHANGE_MAP_TYPE;
|
||||
*action = ACTION_CHANGE_MAP_TYPE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -192,7 +192,7 @@ Rectangle waitingOnMapEvent(sfRenderWindow *const window, sfEvent *const event,
|
||||
--> cf. https://github.com/SFML/SFML/blob/fae3b65f0567f87fa9925cd42d28df15eb69e79c/src/SFML/Window/Unix/InputImpl.cpp#L237 */
|
||||
else if((event->type == sfEvtMouseButtonPressed && event->mouseButton.button == sfMouseXButton2) || sfKeyboard_isKeyPressed(sfKeyN))
|
||||
{
|
||||
*action = ZOOM_NEXT;
|
||||
*action = ACTION_ZOOM_NEXT;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -200,18 +200,18 @@ Rectangle waitingOnMapEvent(sfRenderWindow *const window, sfEvent *const event,
|
||||
--> cf. https://github.com/SFML/SFML/blob/fae3b65f0567f87fa9925cd42d28df15eb69e79c/src/SFML/Window/Unix/InputImpl.cpp#L238 */
|
||||
else if((event->type == sfEvtMouseButtonPressed && event->mouseButton.button == sfMouseXButton1) || sfKeyboard_isKeyPressed(sfKeyP))
|
||||
{
|
||||
*action = ZOOM_PREV;
|
||||
*action = ACTION_ZOOM_PREV;
|
||||
break;
|
||||
}
|
||||
|
||||
else if(sfMouse_isButtonPressed(sfMouseLeft) && *action == ZOOMABLE && inWindow)
|
||||
else if(sfMouse_isButtonPressed(sfMouseLeft) && *action == ACTION_ZOOMABLE && inWindow)
|
||||
{
|
||||
Rectangle carre = selectionRectangle(window, event, renderSprite, true);
|
||||
|
||||
// Si l'utilisateur a réellement sélectionné une zone...
|
||||
if(carre.positionHG.x != 0.0 && carre.positionHG.y != 0.0 && carre.positionBD.x != 0.0 && carre.positionBD.y != 0.0)
|
||||
{
|
||||
*action = ZOOM_ZONE;
|
||||
*action = ACTION_ZOOM_ZONE;
|
||||
return carre;
|
||||
}
|
||||
}
|
||||
@ -249,13 +249,13 @@ Rectangle waitingOnMapEvent(sfRenderWindow *const window, sfEvent *const event,
|
||||
|
||||
if(delta > 0 && carte->zoom < ZOOMAX)
|
||||
{
|
||||
*action = ZOOM_IN;
|
||||
*action = ACTION_ZOOM_IN;
|
||||
break;
|
||||
}
|
||||
|
||||
else if(delta < 0 && carte->zoom > ZOOMIN)
|
||||
{
|
||||
*action = ZOOM_OUT;
|
||||
*action = ACTION_ZOOM_OUT;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -14,13 +14,13 @@ typedef struct Intersection Intersection;
|
||||
|
||||
typedef enum {NONE, AGGLOMERAT, ROUTE} TypePt;
|
||||
|
||||
typedef enum {NO_MODE, GLOBAL, PBP_AUTOMATIC, PBP_MANUAL} Mode;
|
||||
typedef enum {NO_MODE, MODE_GLOBAL, MODE_PBP_AUTOMATIC, MODE_PBP_MANUAL} Mode;
|
||||
|
||||
typedef enum {NO_ACTION, QUIT, ZOOM_NEXT, ZOOM_PREV, ZOOM_ZONE, CHANGE_MAP_TYPE, ZOOM_IN, ZOOM_OUT, ZOOMABLE, UNZOOMABLE} Action;
|
||||
typedef enum {NO_ACTION, ACTION_QUIT, ACTION_ZOOM_NEXT, ACTION_ZOOM_PREV, ACTION_ZOOM_ZONE, ACTION_CHANGE_MAP_TYPE, ACTION_ZOOM_IN, ACTION_ZOOM_OUT, ACTION_ZOOMABLE, ACTION_UNZOOMABLE} Action;
|
||||
|
||||
typedef enum {FIRSTYPE, ROADMAP, SATELLITE, TERRAIN, HYBRID, LASTYPE} MapType;
|
||||
|
||||
typedef enum {NO_TOOL, BACKTOHOME, ZOOMZONE, SELECTPOINTS, ADDLOGS, ACCEPT, CANCEL, NEXT, PREVIOUS, PBP} Tool;
|
||||
typedef enum {NO_TOOL, TOOL_BACKTOHOME, TOOL_ZOOMZONE, TOOL_SELECTPOINTS, TOOL_ADDLOGS, TOOL_ACCEPT, TOOL_CANCEL, TOOL_NEXT, TOOL_PREVIOUS, TOOL_PBP, TOOL_MODE_GLOBAL} Tool;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
111
Vue/vue.c
111
Vue/vue.c
@ -70,46 +70,43 @@ void handleMenu(sfRenderWindow *const window)
|
||||
sfFont *font = loadFontFromFile(REGULARFONTPATH);
|
||||
sfFont *fontIt = loadFontFromFile(ITALICFONTPATH);
|
||||
|
||||
sfText *monTexte1 = creerTexte((sfVector2f){50.f, 100.f}, "Cliquez sur l'icone si contre pour", font, 30, sfBlack);
|
||||
sfRenderTexture_drawText(renderTexture, monTexte1, NULL);
|
||||
sfText *monTexte6 = creerTexte((sfVector2f){50.f, 150.f}, "l'affichage Global", font, 30, sfBlack);
|
||||
sfRenderTexture_drawText(renderTexture, monTexte6, NULL);
|
||||
const uint8_t nombreTextes = 6;
|
||||
sfText *mesTextes[nombreTextes];
|
||||
|
||||
sfText *monTexte2 = creerTexte((sfVector2f){50.f, 250.f}, "Cliquez sur l'icone ci contre pour", font, 30, sfBlack);
|
||||
sfRenderTexture_drawText(renderTexture, monTexte2, NULL);
|
||||
sfText *monTexte3 = creerTexte((sfVector2f){50.f, 300.f}, "l'affichage point par point", font, 30, sfBlack);
|
||||
sfRenderTexture_drawText(renderTexture, monTexte3, NULL);
|
||||
mesTextes[0] = creerTexte((sfVector2f){50.f, 100.f}, "Cliquez sur l\'icone si contre pour", font, 30, sfBlack);
|
||||
sfRenderTexture_drawText(renderTexture, mesTextes[0], NULL);
|
||||
|
||||
sfText *monTexte4 = creerTexte((sfVector2f){50.f, 400.f}, "Utilisez la touche retour pour revenir au menu", fontIt, 20, sfBlack);
|
||||
sfRenderTexture_drawText(renderTexture, monTexte4, NULL);
|
||||
mesTextes[1] = creerTexte((sfVector2f){50.f, 150.f}, "l\'affichage Global", font, 30, sfBlack);
|
||||
sfRenderTexture_drawText(renderTexture, mesTextes[1], NULL);
|
||||
|
||||
sfText *monTexte5 = creerTexte((sfVector2f){50.f, 500.f}, "Ne quittez pas le programme quand il y est indique \"LOADING\".", fontIt, 20, sfRed);
|
||||
sfRenderTexture_drawText(renderTexture, monTexte5, NULL);
|
||||
mesTextes[2] = creerTexte((sfVector2f){50.f, 250.f}, "Cliquez sur l\'icone ci contre pour", font, 30, sfBlack);
|
||||
sfRenderTexture_drawText(renderTexture, mesTextes[2], NULL);
|
||||
|
||||
mesTextes[3] = creerTexte((sfVector2f){50.f, 300.f}, "l'affichage point par point", font, 30, sfBlack);
|
||||
sfRenderTexture_drawText(renderTexture, mesTextes[3], NULL);
|
||||
|
||||
mesTextes[4] = creerTexte((sfVector2f){50.f, 400.f}, "Utilisez la touche retour pour revenir au menu", fontIt, 20, sfBlack);
|
||||
sfRenderTexture_drawText(renderTexture, mesTextes[4], NULL);
|
||||
|
||||
mesTextes[5] = creerTexte((sfVector2f){50.f, 500.f}, "Ne quittez pas le programme quand il y est indique \"LOADING\".", fontIt, 20, sfRed);
|
||||
sfRenderTexture_drawText(renderTexture, mesTextes[5], NULL);
|
||||
|
||||
/*-----------------Bouton d'affichage point par point ----------------*/
|
||||
sfTexture *texturePBP = loadTextureFromFile("Vue/Ressources/Icones/navigation.png");
|
||||
const sfVector2f scale = {0.15, 0.15};
|
||||
sfSprite *sprite1 = loadSpriteFromTexture((sfVector2f){525.f, 260.f}, texturePBP);
|
||||
sfSprite_setScale(sprite1, scale);
|
||||
BoutonMenu * BoutonPBP = loadButtonMenu(PBP, "mode PBP", "Vue/Ressources/Icones/navigation.png");
|
||||
BoutonPBP->zone=(Rectangle){(sfVector2f){525.f, 260.f}, {(sfTexture_getSize(texturePBP).x * scale.x + 525.f ), (sfTexture_getSize(texturePBP).y * scale.y + 260.f )}};
|
||||
|
||||
|
||||
/* ----------------- Bouton d'affichage point par point ---------------- */
|
||||
BoutonMenu *boutonPBP = loadButtonMenu(TOOL_PBP, "", "Vue/Ressources/Icones/navigation.png");
|
||||
boutonPBP->spriteButton = loadSpriteFromTexture((sfVector2f){525.f, 260.f}, boutonPBP->textureButton);
|
||||
sfSprite_setScale(boutonPBP->spriteButton, scale);
|
||||
boutonPBP->zone = (Rectangle){(sfVector2f){525.f, 260.f}, {(sfTexture_getSize(boutonPBP->textureButton).x * scale.x + 525.f ), (sfTexture_getSize(boutonPBP->textureButton).y * scale.y + 260.f )}};
|
||||
sfRenderTexture_drawSprite(renderTexture, boutonPBP->spriteButton, NULL);
|
||||
|
||||
/* ----------------- Bouton d'affichage Global ------------------------- */
|
||||
BoutonMenu *boutonGLO = loadButtonMenu(TOOL_PBP, "", "Vue/Ressources/Icones/global.png");
|
||||
boutonGLO->spriteButton = loadSpriteFromTexture((sfVector2f){525.f, 110.f}, boutonGLO->textureButton);
|
||||
sfSprite_setScale(boutonGLO->spriteButton, scale);
|
||||
boutonGLO->zone = (Rectangle){(sfVector2f){525.f, 110.f}, {(sfTexture_getSize(boutonGLO->textureButton).x * scale.x + 525.f ), (sfTexture_getSize(boutonGLO->textureButton).y * scale.y + 110.f )}};
|
||||
sfRenderTexture_drawSprite(renderTexture, boutonGLO->spriteButton, NULL);
|
||||
|
||||
/*-----------------Bouton d'affichage Gloabl ----------------*/
|
||||
sfTexture *textureGLO = loadTextureFromFile("Vue/Ressources/Icones/global.png");
|
||||
sfSprite *sprite2 = loadSpriteFromTexture((sfVector2f){525.f, 110.f}, textureGLO);
|
||||
sfSprite_setScale(sprite2, scale);
|
||||
BoutonMenu * BoutonGLO = loadButtonMenu(PBP, "mode PBP", "Vue/Ressources/Icones/global.png");
|
||||
BoutonGLO->zone=(Rectangle){(sfVector2f){525.f, 110.f}, {(sfTexture_getSize(textureGLO).x * scale.x + 525.f ), (sfTexture_getSize(textureGLO).y * scale.y + 110.f )}};
|
||||
|
||||
|
||||
|
||||
|
||||
sfRenderTexture_drawSprite(renderTexture, sprite1, NULL);
|
||||
sfRenderTexture_drawSprite(renderTexture, sprite2, NULL);
|
||||
|
||||
sfRenderTexture_display(renderTexture);
|
||||
|
||||
sfSprite *renderSprite = loadSpriteFromRenderTexture(renderTexture);
|
||||
@ -119,8 +116,8 @@ void handleMenu(sfRenderWindow *const window)
|
||||
Menu menu;
|
||||
initialiserMenu(&menu);
|
||||
|
||||
ajouterEntreeMenu(&menu, loadButtonMenu(ZOOMZONE, "Zoomer sur zone", "Vue/Ressources/Icones/zoom-in.png"), font);
|
||||
ajouterEntreeMenu(&menu, loadButtonMenu(SELECTPOINTS, "Points à cacher", "Vue/Ressources/Icones/hide.png"), font);
|
||||
ajouterEntreeMenu(&menu, loadButtonMenu(TOOL_ZOOMZONE, "Zoomer sur zone", "Vue/Ressources/Icones/zoom-in.png"), font);
|
||||
ajouterEntreeMenu(&menu, loadButtonMenu(TOOL_SELECTPOINTS, "Points à cacher", "Vue/Ressources/Icones/hide.png"), font);
|
||||
|
||||
afficherMenu(&menu);
|
||||
|
||||
@ -144,20 +141,12 @@ void handleMenu(sfRenderWindow *const window)
|
||||
|
||||
if(event.type == sfEvtMouseButtonPressed)
|
||||
{
|
||||
if(mouseIsInRect(((sfVector2f){event.mouseButton.x, event.mouseButton.y}), BoutonPBP->zone))// && (sfMouse_isButtonPressed(sfMouseLeft)))
|
||||
if(mouseIsInRect(((sfVector2f){event.mouseButton.x, event.mouseButton.y}), boutonGLO->zone))
|
||||
{
|
||||
printf("test\n");
|
||||
}
|
||||
}
|
||||
|
||||
if(event.type == sfEvtMouseButtonPressed)
|
||||
{
|
||||
if(mouseIsInRect(((sfVector2f){event.mouseButton.x, event.mouseButton.y}), BoutonGLO->zone))
|
||||
{
|
||||
mode = GLOBAL;
|
||||
mode = MODE_GLOBAL;
|
||||
}
|
||||
|
||||
else if(mouseIsInRect(((sfVector2f){event.mouseButton.x, event.mouseButton.y}), BoutonPBP->zone))
|
||||
else if(mouseIsInRect(((sfVector2f){event.mouseButton.x, event.mouseButton.y}), boutonPBP->zone))
|
||||
{
|
||||
// On affiche un texte pour expliquer !
|
||||
affichageMenuContinu(window, renderTexture, &renderSprite);
|
||||
@ -168,12 +157,12 @@ void handleMenu(sfRenderWindow *const window)
|
||||
|
||||
if(sfKeyboard_isKeyPressed(sfKeyM) || sfKeyboard_isKeyPressed(sfKeyNumpad2))
|
||||
{
|
||||
mode = PBP_AUTOMATIC;
|
||||
mode = MODE_PBP_AUTOMATIC;
|
||||
}
|
||||
|
||||
else if(sfKeyboard_isKeyPressed(sfKeyL) || sfKeyboard_isKeyPressed(sfKeyNumpad3))
|
||||
{
|
||||
mode = PBP_MANUAL;
|
||||
mode = MODE_PBP_MANUAL;
|
||||
}
|
||||
|
||||
else if(sfKeyboard_isKeyPressed(sfKeyBack))
|
||||
@ -192,18 +181,18 @@ void handleMenu(sfRenderWindow *const window)
|
||||
sfRenderWindow_setFramerateLimit(window, FRAMERATELIMITSLEEP);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Si on appuie sur la touche retour, on retourne au menu (géré par waitingOnMap(), appelé dans le Contrôleur une fois les points affichés)
|
||||
sfRenderTexture_clear(renderTexture, sfWhite);
|
||||
sfRenderTexture_drawText(renderTexture, monTexte1, NULL);
|
||||
sfRenderTexture_drawText(renderTexture, monTexte2, NULL);
|
||||
sfRenderTexture_drawText(renderTexture, monTexte3, NULL);
|
||||
sfRenderTexture_drawText(renderTexture, monTexte4, NULL);
|
||||
sfRenderTexture_drawText(renderTexture, monTexte5, NULL);
|
||||
sfRenderTexture_drawText(renderTexture, monTexte6, NULL);
|
||||
sfRenderTexture_drawSprite(renderTexture, sprite1, NULL);
|
||||
sfRenderTexture_drawSprite(renderTexture, sprite2, NULL);
|
||||
|
||||
for(uint8_t i = 0; i < nombreTextes; i++)
|
||||
{
|
||||
sfRenderTexture_drawText(renderTexture, mesTextes[i], NULL);
|
||||
}
|
||||
|
||||
sfRenderTexture_drawSprite(renderTexture, boutonPBP->spriteButton, NULL);
|
||||
sfRenderTexture_drawSprite(renderTexture, boutonGLO->spriteButton, NULL);
|
||||
|
||||
sfRenderTexture_display(renderTexture);
|
||||
|
||||
sfSprite_destroy(renderSprite);
|
||||
@ -214,10 +203,12 @@ void handleMenu(sfRenderWindow *const window)
|
||||
|
||||
sfFont_destroy(font);
|
||||
sfFont_destroy(fontIt);
|
||||
sfText_destroy(monTexte1);
|
||||
sfText_destroy(monTexte2);
|
||||
sfText_destroy(monTexte3);
|
||||
sfText_destroy(monTexte4);
|
||||
|
||||
for(uint8_t i = 0; i < nombreTextes; i++)
|
||||
{
|
||||
sfText_destroy(mesTextes[i]);
|
||||
}
|
||||
|
||||
sfRenderTexture_destroy(renderTexture);
|
||||
sfSprite_destroy(renderSprite);
|
||||
}
|
||||
|
Reference in New Issue
Block a user