init.c 5.75 KB
#include <stdio.h>
#include <stdlib.h>

#include "../Graphique/libgraph.h"
#include "../ListeC/Liste.h"
#include "../Interactif/Interactif.h"
#include "init.h"

#define TailleX 500
#define TailleY 500
#define Sol 475
#define ErreurHitbox 2
#define JoueurX TailleX/2
#define JoueurY 9*TailleY/10
    
struct entite joueur;

int  canon           = 0;
int  missile         = 0;
int  sbire           = 0;
int  bouillie        = 0;
int  bombe           = 0;

int  hitboxcanonL    = 0;
int  hitboxcanonH    = 0;
int  hitboxmissileL  = 0;
int  hitboxmissileH  = 0;
int  hitboxsbireL    = 0;
int  hitboxsbireH    = 0;
int  hitboxbouillieL = 0;
int  hitboxbouillieH = 0;
int  hitboxbombeL    = 0;
int  hitboxbombeH    = 0;

char Nom[]           = "Space Invader";
char input           = '\0';


void initialiser()
{
    canon    = chargerLutin ("../../Lutins/invader_canon.bmp",
                             COULEUR_NOIR);
    missile  = chargerLutin ("../../Lutins/invader_missile.bmp",
                             COULEUR_NOIR);
    sbire    = chargerLutin ("../../Lutins/invader_monstre1_1.bmp",
                             COULEUR_NOIR);
    bouillie = chargerLutin ("../../Lutins/invader_monstre_bouillie.bmp",
                             COULEUR_NOIR);
    bombe    = chargerLutin ("../../Lutins/invader_bombe.bmp",
                             COULEUR_NOIR);
    
    tailleLutin (canon,
                 &hitboxcanonL,
                 &hitboxcanonH);
    tailleLutin (missile,
                 &hitboxmissileL,
                 &hitboxmissileH);
    tailleLutin (sbire,
                 &hitboxsbireL,
                 &hitboxsbireH);
    tailleLutin (bouillie,
                 &hitboxbouillieL,
                 &hitboxbouillieH);
    tailleLutin (bombe,
                 &hitboxbombeL,
                 &hitboxbombeH);

}


void initialiserjoueur(struct entite* joueur)
{
    joueur->posx      = JoueurX;
    joueur->posy      = JoueurY;
    joueur->dropbombe = -1;
}


char pagedemarrage()
{
    static const char policeDefaut[] = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf";
    int  Largeur        = 0;
    int  Hauteur        = 0;
    char jouer[]        = "Appuyer sur j pour Jouer";
    char quitter[]      = "Appuyer ailleurs pour Quitter";
    
    choisirPolice (policeDefaut, TailleX / 20);
    int  LutinJouer     = lutinTexte (jouer, COULEUR_BLANC);
    int  LutinQuitter   = lutinTexte (quitter, COULEUR_BLANC);
    
    choisirPolice (policeDefaut,TailleX / 10);
    int  LutinBienvenue = lutinTexte (Nom, COULEUR_VERT);
    
    rectanglePlein (0,
                    0,
                    TailleX,
                    TailleY,
                    COULEUR_NOIR);
     
    tailleLutin   (LutinBienvenue,
                   &Largeur,
                   &Hauteur);
    afficherLutin (LutinBienvenue,
                   TailleX / 2 - Largeur / 2,
                   TailleY / 4 + Hauteur / 2);
    
    tailleLutin   (LutinJouer,
                   &Largeur,
                   &Hauteur);
    afficherLutin (LutinJouer,
                   TailleX/2-Largeur/2,
                   TailleY/2-Hauteur/2);
    
    tailleLutin   (LutinQuitter,
                   &Largeur,
                   &Hauteur);
    afficherLutin (LutinQuitter,
                   TailleX / 2 - Largeur / 2,
                   TailleY / 2 + Hauteur / 2);
   
    attendreEvenement ();
    
    input = touche();
    while (input == '\0')
    {
        input = touche();
    }
    return input;
}


void pagemort (int nbr_vie)
{
    static const char policeDefaut[] = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf";
    int Largeur    = 0;
    int Hauteur    = 0;
    char mort[]    = "Vous etes mort";
    char vie[30]   = "\0";
    sprintf(vie, "Nombre de vie restante : %d", nbr_vie);
    
    choisirPolice (policeDefaut, TailleX / 10);
    int LutinMort  = lutinTexte(mort, COULEUR_ROUGE);
    
    choisirPolice (policeDefaut, TailleX / 20);
    int LutinVie   = lutinTexte(vie, COULEUR_BLANC);
    
    rectanglePlein (0,
                    0,
                    TailleX,
                    TailleY,
                    COULEUR_NOIR);

    tailleLutin   (LutinMort,
                   &Largeur,
                   &Hauteur);
    afficherLutin (LutinMort,
                   TailleX / 2 - Largeur / 2,
                   TailleY / 4 + Hauteur / 2);
    
    tailleLutin   (LutinVie,
                   &Largeur,
                   &Hauteur);
    afficherLutin (LutinVie,
                   TailleX / 2 - Largeur / 2,
                   TailleY / 2 - Hauteur / 2);
}


void pageGameOver()
{
    static const char policeDefaut[] = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf";
    int Largeur  = 0;
    int Hauteur  = 0;
    char fin[]   = "GAME OVER";
    
    choisirPolice(policeDefaut, TailleX / 10);
    int LutinFin = lutinTexte(fin, COULEUR_ROUGE);
    
    rectanglePlein (0,
                    0,
                    TailleX,
                    TailleY,
                    COULEUR_NOIR);
    
    tailleLutin   (LutinFin,
                   &Largeur,
                   &Hauteur);
    afficherLutin (LutinFin,
                   TailleX / 2 - Largeur / 2,
                   TailleY / 2 - Hauteur / 2);
    
}


void pageVictoire()
{
    static const char policeDefaut[] = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf";
    int Largeur  = 0;
    int Hauteur  = 0;
    char fin[]   = "VICTOIRE";
    
    choisirPolice(policeDefaut, TailleX / 10);
    int LutinFin = lutinTexte(fin, COULEUR_VERT);
    
    rectanglePlein (0,
                    0,
                    TailleX,
                    TailleY,
                    COULEUR_NOIR);
    
    tailleLutin   (LutinFin,
                   &Largeur,
                   &Hauteur);
    afficherLutin (LutinFin,
                   TailleX / 2 - Largeur / 2,
                   TailleY / 2 - Hauteur / 2);
    
}