Modification de bugs + changement de pomme
This commit is contained in:
parent
4e1a6be5b3
commit
50e625e1b1
BIN
img/pomme1.png
BIN
img/pomme1.png
Binary file not shown.
Before Width: | Height: | Size: 353 B After Width: | Height: | Size: 1.2 KiB |
@ -1,7 +1,7 @@
|
||||
#ifndef MENU_H
|
||||
#define MENU_H
|
||||
|
||||
|
||||
void afficherBouton(double x1, double y1, double x2, double y2, const char *texte, couleur arriere_plan, couleur bordure, couleur couleur_texte, int taille_texte);
|
||||
void afficherMenuPrincipal(void);
|
||||
void afficherMenuModesDeJeu(void);
|
||||
void afficherMenuGameOver(void);
|
||||
|
59
src/jeu.c
59
src/jeu.c
@ -1,7 +1,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <graph.h>
|
||||
#include <time.h>
|
||||
#include <time.h> /* à supprimer prochainement */
|
||||
#include "../include/grille.h"
|
||||
#include "../include/serpent.h"
|
||||
#include "../include/pomme.h"
|
||||
@ -9,9 +9,21 @@
|
||||
#include "../include/menu.h"
|
||||
|
||||
|
||||
void afficherScore(int score) {
|
||||
char scoreStr[20];
|
||||
/* Efface l'ancien score */
|
||||
ChoisirCouleurDessin(CouleurParComposante(0, 0, 0));
|
||||
RemplirRectangle(178, 946, 200, 40);
|
||||
/* Convertit le score en chaîne de caractères */
|
||||
snprintf(scoreStr, sizeof(scoreStr), "%d", score);
|
||||
/* Affiche le nouveau score */
|
||||
ChoisirCouleurDessin(CouleurParComposante(255, 255, 255));
|
||||
EcrireTexte(178, 976, scoreStr, 2);
|
||||
}
|
||||
|
||||
|
||||
void lancer_jeu1(void) {
|
||||
struct timespec delai = {0, 55000000}; /* A SUPPRIMER QUAND ON AURA LA FONCTION ATTENDRE*/
|
||||
Segment serpent[100];
|
||||
int longueur = 10;
|
||||
int direction_x = 1;
|
||||
@ -51,21 +63,14 @@ void lancer_jeu1(void) {
|
||||
|
||||
dessinerSerpent(serpent, &longueur);
|
||||
|
||||
/* Efface l'ancien score */
|
||||
ChoisirCouleurDessin(CouleurParComposante(0, 0, 0));
|
||||
RemplirRectangle(178, 946, 200, 40);
|
||||
/* Convertit le score en chaîne de caractères */
|
||||
snprintf(scoreStr, sizeof(scoreStr), "%d", score);
|
||||
/* Affiche le nouveau score */
|
||||
ChoisirCouleurDessin(CouleurParComposante(255, 255, 255));
|
||||
EcrireTexte(178, 976, scoreStr, 2);
|
||||
afficherScore(score);
|
||||
|
||||
struct timespec delai = {0, 55000000}; /*50 000 000 nanosecondes (0.05 seconde)*/
|
||||
nanosleep(&delai, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
void lancer_jeu2(void) {
|
||||
struct timespec delai = {0, 55000000}; /*50 000 000 nanosecondes (0.05 seconde)*/
|
||||
int i;
|
||||
Segment serpent[100];
|
||||
int longueur = 10;
|
||||
@ -110,16 +115,8 @@ void lancer_jeu2(void) {
|
||||
|
||||
dessinerSerpent(serpent, &longueur);
|
||||
|
||||
/* Efface l'ancien score */
|
||||
ChoisirCouleurDessin(CouleurParComposante(0, 0, 0));
|
||||
RemplirRectangle(178, 946, 200, 40);
|
||||
/* Convertit le score en chaîne de caractères */
|
||||
snprintf(scoreStr, sizeof(scoreStr), "%d", score);
|
||||
/* Affiche le nouveau score */
|
||||
ChoisirCouleurDessin(CouleurParComposante(255, 255, 255));
|
||||
EcrireTexte(178, 976, scoreStr, 2);
|
||||
afficherScore(score);
|
||||
|
||||
struct timespec delai = {0, 55000000}; /*50 000 000 nanosecondes (0.05 seconde)*/
|
||||
nanosleep(&delai, NULL);
|
||||
}
|
||||
}
|
||||
@ -166,21 +163,15 @@ void lancer_jeu3(void) {
|
||||
|
||||
dessinerSerpent(serpent, &longueur);
|
||||
|
||||
/* Efface l'ancien score */
|
||||
ChoisirCouleurDessin(CouleurParComposante(0, 0, 0));
|
||||
RemplirRectangle(178, 946, 200, 40);
|
||||
/* Convertit le score en chaîne de caractères */
|
||||
snprintf(scoreStr, sizeof(scoreStr), "%d", score);
|
||||
/* Affiche le nouveau score */
|
||||
ChoisirCouleurDessin(CouleurParComposante(255, 255, 255));
|
||||
EcrireTexte(178, 976, scoreStr, 2);
|
||||
afficherScore(score);
|
||||
|
||||
/*Permet de gérer la vitesse du serpent*/
|
||||
nanosleep(&delai, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
void lancer_jeu4(void) {
|
||||
struct timespec delai = {0, 30000000}; /*40 000 000 nanosecondes (0.04 seconde)*/
|
||||
struct timespec delai = {0, 28000000}; /*40 000 000 nanosecondes (0.04 seconde)*/
|
||||
Segment serpent[100];
|
||||
int longueur = 10;
|
||||
int direction_x = 1;
|
||||
@ -220,15 +211,11 @@ void lancer_jeu4(void) {
|
||||
|
||||
dessinerSerpent(serpent, &longueur);
|
||||
|
||||
/* Efface l'ancien score */
|
||||
ChoisirCouleurDessin(CouleurParComposante(0, 0, 0));
|
||||
RemplirRectangle(178, 946, 200, 40);
|
||||
/* Convertit le score en chaîne de caractères */
|
||||
snprintf(scoreStr, sizeof(scoreStr), "%d", score);
|
||||
/* Affiche le nouveau score */
|
||||
ChoisirCouleurDessin(CouleurParComposante(255, 255, 255));
|
||||
EcrireTexte(178, 976, scoreStr, 2);
|
||||
afficherScore(score);
|
||||
|
||||
/*Permet de gérer la vitesse du serpent*/
|
||||
nanosleep(&delai, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
67
src/menu.c
67
src/menu.c
@ -1,58 +1,37 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <graph.h>
|
||||
#include "../include/menu.h"
|
||||
#include "../include/main.h"
|
||||
|
||||
|
||||
|
||||
void afficherMenuPrincipal() {
|
||||
ChargerImageFond("../img/menu_principal.png");
|
||||
|
||||
/* Affiche le bouton "Jouer" */
|
||||
ChoisirCouleurDessin(CouleurParComposante(0,151,178));
|
||||
RemplirRectangle(67, 850, 300, 100);
|
||||
ChoisirCouleurDessin(CouleurParNom("black"));
|
||||
EcrireTexte(180, 910, "Jouer", 2);
|
||||
afficherBouton(67, 850, 367, 950, "Jouer", CouleurParComposante(0,151,178), CouleurParNom("black"), CouleurParNom("black"), 2);
|
||||
|
||||
/* Affiche le bouton "Quitter" */
|
||||
ChoisirCouleurDessin(CouleurParComposante(0,151,178));
|
||||
RemplirRectangle(800, 850, 300, 100);
|
||||
ChoisirCouleurDessin(CouleurParNom("black"));
|
||||
EcrireTexte(910, 910, "Quitter", 2);
|
||||
|
||||
afficherBouton(800, 850, 1100, 950, "Quitter", CouleurParComposante(0,151,178), CouleurParNom("black"), CouleurParNom("black"), 2);
|
||||
}
|
||||
|
||||
|
||||
void afficherMenuModesDeJeu() {
|
||||
|
||||
/* Affiche l'image de fond des modes de jeu */
|
||||
ChargerImageFond("../img/modes_de_jeu.png");
|
||||
|
||||
/*Affiche le bouton n°1*/
|
||||
ChoisirCouleurDessin(CouleurParComposante(168,116,67));
|
||||
RemplirRectangle(38.7, 639.9, 241.6, 103);
|
||||
ChoisirCouleurDessin(CouleurParNom("black"));
|
||||
EcrireTexte(87.6, 700, "Classique", 2);
|
||||
|
||||
/*Affiche le bouton n°2*/
|
||||
ChoisirCouleurDessin(CouleurParComposante(168,116,67));
|
||||
RemplirRectangle(332.6, 639.9, 241.6, 103);
|
||||
ChoisirCouleurDessin(CouleurParNom("black"));
|
||||
EcrireTexte(360.4, 700, "MultiPommes", 2);
|
||||
|
||||
/*Affiche le bouton n°3*/
|
||||
ChoisirCouleurDessin(CouleurParComposante(168,116,67));
|
||||
RemplirRectangle(626.2, 639.9, 241.6, 103);
|
||||
ChoisirCouleurDessin(CouleurParNom("black"));
|
||||
EcrireTexte(700.1, 700, "Rapide", 2);
|
||||
|
||||
/*Affiche le bouton n°4*/
|
||||
ChoisirCouleurDessin(CouleurParComposante(168,116,67));
|
||||
RemplirRectangle(919.7, 639.9, 241.6, 103);
|
||||
ChoisirCouleurDessin(CouleurParNom("black"));
|
||||
EcrireTexte(960.7, 700, "Ultra rapide", 2);
|
||||
/* Affiche les boutons des modes de jeu */
|
||||
afficherBouton(38.7, 639.9, 280.3, 742.9, "Classique", CouleurParComposante(168, 116, 67), CouleurParNom("nom_de_la_couleur_bordure"), CouleurParNom("nom_de_la_couleur_texte"), 2);
|
||||
afficherBouton(332.6, 639.9, 574.2, 742.9, "MultiPommes", CouleurParComposante(168, 116, 67), CouleurParNom("nom_de_la_couleur_bordure"), CouleurParNom("nom_de_la_couleur_texte"), 2);
|
||||
afficherBouton(626.2, 639.9, 867.8, 742.9, "Rapide", CouleurParComposante(168, 116, 67), CouleurParNom("nom_de_la_couleur_bordure"), CouleurParNom("nom_de_la_couleur_texte"), 2);
|
||||
afficherBouton(919.7, 639.9, 1161.3, 742.9, "Ultra rapide", CouleurParComposante(168, 116, 67), CouleurParNom("nom_de_la_couleur_bordure"), CouleurParNom("nom_de_la_couleur_texte"), 2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void afficherMenuGameOver(void) {
|
||||
/* Affiche l'image game over */
|
||||
ChargerImageFond("../img/game_over.png");
|
||||
@ -134,3 +113,23 @@ int attendreChoixMenu(){
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void afficherBouton(double x1, double y1, double x2, double y2, const char *texte, couleur arriere_plan, couleur bordure, couleur couleur_texte, int taille_texte) {
|
||||
/* Copie la chaîne constante dans une nouvelle chaîne non constante */
|
||||
char *texte_modifiable = strdup(texte);
|
||||
|
||||
/* Affiche le bouton avec la couleur d'arrière-plan spécifiée */
|
||||
ChoisirCouleurDessin(arriere_plan);
|
||||
RemplirRectangle(x1, y1, x2 - x1, y2 - y1);
|
||||
|
||||
/* Affiche la bordure avec la couleur spécifiée */
|
||||
ChoisirCouleurDessin(bordure);
|
||||
DessinerRectangle(x1, y1, x2 - x1, y2 - y1);
|
||||
|
||||
/* Affiche le texte centré sur le bouton avec la couleur de texte spécifiée */
|
||||
ChoisirCouleurDessin(couleur_texte);
|
||||
EcrireTexte((int)((x1 + x2) / 2 - TailleChaineEcran(texte_modifiable, taille_texte) / 2), (int)((y1 + y2) / 2 + TailleSupPolice(taille_texte) / 2), texte_modifiable, taille_texte);
|
||||
|
||||
/* Libère la mémoire allouée pour la copie de la chaîne */
|
||||
free(texte_modifiable);
|
||||
}
|
34
src/pomme.c
Normal file
34
src/pomme.c
Normal file
@ -0,0 +1,34 @@
|
||||
#include <stdlib.h>
|
||||
#include <graph.h>
|
||||
#include "../include/grille.h"
|
||||
#include "../include/serpent.h"
|
||||
|
||||
typedef struct {
|
||||
int x;
|
||||
int y;
|
||||
} Pomme;
|
||||
|
||||
Pomme creerPomme() {
|
||||
Pomme pomme;
|
||||
pomme.x = rand() % 60;
|
||||
pomme.y = rand() % 40;
|
||||
return pomme;
|
||||
}
|
||||
|
||||
void dessinerPomme(Pomme pomme) {
|
||||
/* Affichez une pomme*/
|
||||
int id_pomme;
|
||||
id_pomme = ChargerSprite("../img/pomme1.png");
|
||||
AfficherSprite(id_pomme,pomme.x * TAILLE_CASE, pomme.y * TAILLE_CASE);
|
||||
}
|
||||
|
||||
int verifierCollisionPommeSerpent(Pomme pomme, Segment serpent[], int longueur) {
|
||||
int i;
|
||||
/*Vérifie si la pomme est sur une case occupée par le serpent*/
|
||||
for (i = 0; i < longueur; ++i) {
|
||||
if (pomme.x == serpent[i].x && pomme.y == serpent[i].y) {
|
||||
return 1; /* Collision */
|
||||
}
|
||||
}
|
||||
return 0; /* Pas de collision */
|
||||
}
|
Loading…
Reference in New Issue
Block a user