fichiers utilisees pour la création d'un labyrinthe 3D

GAME_ENGINE.h

Committer:
kangulu
Date:
2020-04-30
Revision:
0:1f10f1e735e0

File content as of revision 0:1f10f1e735e0:

#include "mbed.h"
#include "LCD_DISCO_F746NG.h"
#include "stm32746g_discovery_ts.h"

#include <stdio.h>
#include <stdlib.h>

#include <math.h>
#include <time.h>
//taille de la map généré aléatoirement
#define LONGUEUR 7
#define LARGEUR 7
//taille de la map qui sera "réellement" utilisée :: map aléatoire multipliée par 3
#define MAP_WIDTH 21
#define MAP_HEIGHT 21

# define M_PI           3.14159265358979323846

#define TICKS_PER_SEC 64

#define WALL_SIZE 64
#define CAMERA_HEIGHT 32
#define SCREEN_WIDTH 480 
#define SCREEN_HEIGHT 272
#define DISTANCE_SCREEN_CAMERA 640

void screen_init();
void screen_draw();

typedef int color;
typedef char ident; //contiendra 5 bits (54321)b, le 5 pour la verif, 4 pour haut, 3 droite, 2 bas et 1 gauche
//en binaire, si l'un des 4 derniers bit est à 1, le mur associé est fermé

typedef color worldmap[MAP_HEIGHT][MAP_WIDTH];
typedef ident minimap[LARGEUR][LONGUEUR];

typedef struct position{
    double x;
    double y;
}position;

typedef struct inputState{
    int x;
    int y;
}inputState;

typedef struct dist_and_color{
    double distance;
    color color;
}dist_and_color;    

void show_world(position pos,worldmap map);

void arrow_up(position *pos,double vx,double vy);
void arrow_down(position *pos,double vx,double vy);


void rotation(double * vx,double * vy, double theta);
void arrow_right(double * vx,double * vy);
void arrow_left(double * vx,double * vy);


color tangent_wall_h(double xprime,int yprime,double vy, worldmap map);
color tangent_wall_v(int xprime,double yprime,double vx, worldmap map);

dist_and_color dda_h(position pos,double vx, double vy,worldmap map);
dist_and_color dda_v(position pos,double vx, double vy,worldmap map);
dist_and_color dda(position pos,double vx, double vy,worldmap map);


void display(position pos, double vx, double vy, worldmap map);

int getInputState(inputState *iS);

void createMap(minimap mini, worldmap world);
void gerenatePosition(int* i_pt, int* j_pt, worldmap world);
void generateSortie(int i, int j, worldmap world);
int verificationFin(position pos, worldmap world);