# include # include # include void affiche_boutons(void) { /* Initialise le graphique et le ferme SEULEMENT si l'utilisateur ferme la fenêtre ou appuie sur QUITTER */ couleur c; InitialiserGraphique(); CreerFenetre(100,100,500,500); c = CouleurParNom("white"); EffacerEcran(c); DessinerRectangle(150,300,200,50); DessinerRectangle(150,375,200,50); c = CouleurParNom("blue"); ChoisirCouleurDessin(c); EcrireTexte(188,412, "QUITTER", 2); c = CouleurParNom("red"); ChoisirCouleurDessin(c); EcrireTexte(200,337, "JOUER", 2); /* printf("\n%d\n", TailleChaineEcran("QUITTER", 2)); */ } int souris_clique_bouton(int bouton_x, int bouton_y, int largeur, int hauteur) { /* Prend en argument les coordonnées x et y du point en haut à gauche du bouton, sa largeur et sa hauteur puis renvoie un booléen si la souris clique dans la zone du bouton (0 si oui, 1 sinon) */ int hitbox_largeur[500]; int hitbox_hauteur[500]; int i; int j; SourisCliquee(); /* Remplit le tableau hitbox_largeur avec toutes les coordonnées x qui correspondent à celles du bouton */ for (i = 0; i != largeur; i++) { hitbox_largeur[i] = i + bouton_x; } /* Remplit le tableau hitbox_hauteur avec toutes les coordonnées y qui correspondent à celles du bouton */ for (i = 0; i != hauteur; i++) { hitbox_hauteur[i] = i + bouton_y; } /* Vérifie si les coordonnées de la souris sont présentes dans les tableaux qui définissent la hitbox du bouton */ for (i = 0; i != largeur; i++) { for (j = 0; j != hauteur; j++) { if ((hitbox_largeur[i] == _X) && (hitbox_hauteur[j] == _Y)) { return 1; } } } return 0; } int main(void) { int test = 1; affiche_boutons(); while (1) { if (souris_clique_bouton(150,375,200,50)) { FermerGraphique(); return EXIT_SUCCESS; } if (souris_clique_bouton(150,375,200,50)) { /* Lancer le code du jeu */ } } }