Simulateur de contrôle aérien en C avec SFML : suivi d'avions en temps réel, détection de collisions et interface radar.
Telecharger & tester
make && ./my_radar (simulateur de radar aerien graphique en CSFML, necessite un affichage natif)
myradar est un projet Epitech (Tek1) qui consiste a developper en C, avec la CSFML, un panneau de visualisation 2D simulant un controle de trafic aerien, avec deux types d'entites : des avions et des tours de controle.
Chaque avion se deplace en ligne droite a vitesse constante entre une position de decollage et une position d'atterrissage, apparait au decollage puis disparait a l'atterrissage, et est detruit s'il entre en collision avec un autre avion, sauf si cette collision se produit a l'interieur de la zone de controle circulaire d'une tour, qui autorise alors les avions a se croiser sans dommage.
La simulation est entierement pilotee par un fichier script passe en unique parametre au programme, dont le format est laisse libre au groupe (documente dans un fichier .legend) mais qui doit a minima decrire les avions (lettre A, coordonnees de depart et d'arrivee, vitesse en pixels par seconde, delai avant decollage) et les tours (lettre T, coordonnees et rayon de la zone de controle), les entites etant separees par le marqueur #cr.
La fenetre doit etre fixee a 1920x1080 pixels et fermable par evenement, afficher les hitbox carrees de 20x20 pixels des avions ainsi que les zones circulaires des tours, et gerer un grand nombre d'entites simultanees ; les niveaux superieurs ajoutent un chronometre a l'ecran, l'arret automatique en fin de simulation, le rendu par sprites, l'option -h, et le basculement de l'affichage des hitbox et des sprites via les touches L et S.
La liste des fonctions autorisees est restreinte cote libc (malloc, free, stat, memset, rand/srand/time, (f)open/(f)read/(f)write/(f)close, getline) et precisement enumeree cote CSFML (creation et gestion de fenetre, sprites, textures, formes, texte, vue, transformations et horloges), en plus de la bibliotheque mathematique complete.
Projet suivant
