Le moteur du jeu permet de créer des jeux en 2d à base de sprites.
Les sprites sont répartis en deux catégories principales :
- les sprites de décors (appelés SD), et associés aux fichiers dec
- les sprites de personnages (appelés IA), et associés aux fichiers per
Les fichiers dec et per utilisent un ensemble de mots clés (proches du langage de script dans le lexique, mais très différents dans le fonctionnement).
Une image pourra soit se trouver dans un fichier image isolé (png, jpg, etc.), soit dans une planche de sprites.
Le moteur gère les animations à partir de planches de sprites ou bien à partir d'un ensemble d'images indivuelles.
Chaque sprite peut posséder plusieurs états (séquences d'animations).
Dans sa version actuelle seuls 6 plans sont gérés par le moteur (il est prévu d'étendre cette fonction à un nombre infini de plans dans une prochaine version). Les personnages actifs sont tous sur le plan 2 (qui possède, contrairement aux autres plans, un avant-plan et un arrière-plan).
Le moteur gère les ombres dynamiques ou fixes.
Les shaders sont également pris en charge et peuvent être appliqués à chaque sprite ou bien au rendu global de la scène. Ils permettent notamment d'animer facilement des plantes, de l'eau ou de créer des effets divers.
Un système de particules permet de gérer toute sorte d'effets (pluie, neige, particules dans l'air, etc.). Couplé à un système de forces il est possible de planifier des attractions de particules à des moments précis et de simuler des tempêtes par exemple.
Le moteur permet de gérer autant de clones qu'on le souhaite. Toutes les entrées de la manette ou du clavier sont propagées aux différents clones.
Les collisions sont gérées soit via la technique des hitbox, soit par des masques de collisions.
Un système de chemins permet de définir des KP (keypoint) par où circuleront les sprites. Ces kp gèrent les changements de couleur, de taille ou de rotation. Ils sont utiles pour animer des plateformes ou décrire des trajets complexes à certains sprites (SD ou IA).
Un langage de script permet également un contrôle total du jeu et permet la création de comportements spécifiques aux IA, ou simplement d'animer des éléments de décor.
Le moteur ELB2d prend en charge beaucoup d'autres fonctionnalités qui seront décrites sur ce site à la fin du développement.
Fichier jeu.ini
#########
#
# PARAMETRES GENERAUX DU JEU:
#
###
TITRE="Clone Escape"
#Taille de la fenêtre de jeu : le dernier param indique le mode FULLSCREEN (si 1 alors plein écran, fenêtré si 0)
VIEWPORT=1280;720;16;0
FREE_IAS_MEMORY=0
NEVER_FREE_TEXTURES=1
FRAMERATE=30
VERTICALSYNCHRO=0
AUTOFRAMERATE=0
USESHADER=1
USEPARTICULESARMES=1
USEPARTICULESPERSOS=1
USEPARTICULESOBJETS=1
#####
#Si 1 alors on utilise la killcam : ATTENTION !!! ne pas utiliser si carte vidéo a moins de 1 Go de mémoire !!!!
#sinon ça fait ramer le jeu car la RAM sera utilisée en plus de la mémoire vidéo !!! (perte de 10fps environ)
KILLCAM=0
#Si KILLCAM==1 alors nbr de frames sauvées pour replay (max=200, min utile=80 car 50 ne servent qu'après la mort finale)
#Attention : consomme bcp de mémoire et peu aussi influer sur les fps si pas assez de mémoire vidéo (dans ce cas les textures
#sont stockées en mémoire conventionnelle et on perd une dizaine de fps)
KILLCAMTIME=80
#Si 1 alors un son est joué lors de la navigation dans les menus:
SONMENU=0
#Affiche les FPS et le temps de chargement du niv:
FPS_VISIBLE=0
VOLUME_EFFETS=20
VOLUME_MUSIQUE=5
#Si 1 alors les musiques du jeu sont lus en streaming
#Si 0 alors les musiques du jeu sont chargées en mémoire et lu comme des sons classiques
# => cela demande plus de temps de chargement (à peine en fait !) et plus de mémoire
MUSIQUES_STREAMEES=1
#Image des personnages du jeu utilisée par les scripts lors des dialogues:
IMGPARLE2=MARS;./imagesdialogues/mars2.dec
IMGPARLE2=MARS_BARBE;./imagesdialogues/mars2.dec
IMGPARLE2=MARS_TETECON;./imagesdialogues/mars2.dec
IMGPARLE2=GRISOUX;./imagesdialogues/grisoux.dec
IMGPARLE2=GRISOUX_FURAX;./imagesdialogues/grisoux.dec
IMGPARLE2=CAPITAINE_STYLYS;./imagesdialogues/capitaine_stylys.dec
IMGPARLE2=DOC_STYLYS;./imagesdialogues/doc_stylys.dec
#Images utilisées pour les messages d'infos:
IMGINFO=Tilde;./imagesdialogues/tilde.png
IMGINFO=A;./imagesdialogues/A.png
IMGINFO=B;./imagesdialogues/B.png
IMGINFO=X;./imagesdialogues/X.png
IMGINFO=Y;./imagesdialogues/Y.png
IMGINFO=Croix;./imagesdialogues/Croix.png
IMGINFO=Joy;./imagesdialogues/Joy.png
IMGINFO=Back;./imagesdialogues/Back.png
IMGINFO=Start;./imagesdialogues/Start.png
IMGINFO=Gachette;./imagesdialogues/Gachette.png
IMGINFO=Bouton;./imagesdialogues/Bouton.png
IMGINFO=exclamation;./imagesdialogues/exclamation.png
IMGINFO=onoffx2;./imagesdialogues/info_onoffx2.png
FONDINFO=./imagesdialogues/fondinfos.png
BULLE=./imagesdialogues/bulle.png
#Chargement des effets de fumée/feu/etc. utilisés via OVER:
LOADOVER=LUX21;./effets/lux21.dec
LOADOVER=LUX1;./effets/lux1.dec
LOADOVER=FUMEE_FEU;./effets/fumee_feu.dec
LOADOVER=REACTEUR1;./personnages/marsator_reacteur.dec
LOADOVER=SANG1;./effets/sang2.dec
LOADOVER=YBAS;./effets/ybas.dec
LOADOVER=XBAS;./effets/xbas.dec
LOADOVER=ARME1;./effets/arme1.dec
LOADOVER=ARME2;./effets/arme2.dec
LOADOVER=ARME3;./effets/arme3.dec
LOADOVER=ARME4;./effets/arme4.dec
LOADOVER=ARME5;./effets/arme5.dec
LOADOVER=ARME6;./effets/arme6.dec
LOADOVER=ARME7;./effets/arme7.dec
LOADOVER=ARME8;./effets/arme8.dec
LOADOVER=ARME9;./effets/arme9.dec
LOADOVER=ARME10;./effets/arme10.dec
LOADOVER=ARME11;./effets/arme11.dec
LOADOVER=ARME12;./effets/arme12.dec
LOADOVER=ARME13;./effets/arme13.dec
LOADOVER=FLECHE;./effets/fleche.dec
LOADOVER=CRISTAL3;./decors/Options/cristal_arme3.dec
LOADOVER=CRISTAL2;./decors/Options/cristal_arme2.dec
LOADOVER=CRISTAL1;./decors/Options/cristal_arme1.dec
LOADOVER=CRISTAL;./decors/Options/cristal.dec
#On charge certaines IAs en mémoire :
LOADIA=./ia/ia-meteorefeu.per;METEOREFEU
LOADIA=./ia/ia-mitrailleuse.per;MITRAILLEUSE
LOADIA=./personnages/mars2_multi.per;MARSPERSO_MULTI
#Si 1 alors le logo est affiché ds un thread à part au lancement du jeu, sinon pas de logo !
#ATTENTION : la place du logo dans jeu.ini indique le moment où le logo sera affiché !!!
LOGO=1
#On charge certaines IAs en mémoire : (on met le logo au milieu pour laisser paraitre le tps moins long...)
LOADIA=./personnages/solenia_multi.per;SOLENIAPERSO_MULTI
Fichier son.ini
#########
#
# Ressources DU JEU:
#
###
#Chargement de tous les sons du jeu
LOADSOUND=ALERTE;./sons/alerte.wav
LOADSOUND=APPLAUDISSEMENTS;./sons/applaudissements2.wav
LOADSOUND=CASCADE1;./sons/cascade1.wav
LOADSOUND=CHOC;./sons/choc2.wav
LOADSOUND=DASH;./sons/dash.wav
LOADSOUND=DRAPEAU_VENT;./sons/drapeau_vent.wav
LOADSOUND=EBULITION;./sons/ebulition.wav
LOADSOUND=EXPLOSION;./sons/explosion2.wav
LOADSOUND=FINSUPERPOUVOIR;./sons/fin_superpouvoir.wav
LOADSOUND=GODZIMARS;./sons/godzimars2.wav
LOADSOUND=HELICO;./sons/helico.wav
LOADSOUND=IMPACT_FLECHE;./sons/impact_fleche.wav
LOADSOUND=INVERTOLITE;./sons/invertolite.wav
LOADSOUND=JET_DE_FEU;./sons/jetdefeu.wav
LOADSOUND=MECANISME_ON;./sons/on.wav
LOADSOUND=MENU;./sons/menu2.wav
LOADSOUND=MER1;./sons/mer1.wav
LOADSOUND=MINIMOI;./sons/minimoi.wav
LOADSOUND=MISSILE;./sons/missile2.wav
LOADSOUND=OISEAUX;./sons/oiseaux.wav
LOADSOUND=OISEAUX2;./sons/oiseaux2.wav
LOADSOUND=PADSOTOLITE;./sons/plantesoptions.wav
LOADSOUND=PLATEFORME;./sons/plateforme.wav
LOADSOUND=PORTES;./sons/portes.wav
LOADSOUND=PORTES_FERMETURE;./sons/fermetureportes.wav
LOADSOUND=REBOND;./sons/rebond.wav
LOADSOUND=REBOND_GRENADE;./sons/rebond_grenade.wav
#LOADSOUND=RECEPTION_SAUT;./sons/saut_reception3.wav
LOADSOUND=RELOAD;./sons/reload.wav
LOADSOUND=ROCKER_PROPAGATION;./sons/rocker_propagation.wav
LOADSOUND=SORTIE;./sons/sortie.wav
LOADSOUND=SORTIE_INV;./sons/sortie-inv.wav
LOADSOUND=SPLASH;./sons/limasson.wav
LOADSOUND=TELEPORTE;./sons/teleporte.wav
LOADSOUND=TIRVIDE;./sons/tirvide.wav
LOADSOUND=TIR_FLECHE;./sons/tir_fleche.wav
LOADSOUND=TIR_GRENADE;./sons/tir_grenade.wav
LOADSOUND=TIR_PHASER;./sons/tir_phaser2.wav
LOADSOUND=TIR_PINKER;./sons/tir_pinker.wav
LOADSOUND=TIR_KRABOUMER;./sons/tir_kraboumer.wav
LOADSOUND=TIR_MINE;./sons/tir_pinker.wav
LOADSOUND=TIR_MITRAILLEUSE;./sons/tir_mitrailleuse.wav
LOADSOUND=TIR_LASER;./sons/tir_laser.wav
LOADSOUND=TIR_ROCKER;./sons/tir_rocker.wav
LOADSOUND=TIRPERSO2;./sons/tirperso.wav
LOADSOUND=TIRVAISSEAUPERSO;./sons/tirperso.wav
LOADSOUND=TONERRE1;./sons/sontonerre.wav
LOADSOUND=TONERRE2;./sons/sontonerre2.wav
LOADSOUND=TOUCHE;./sons/touche.wav
LOADSOUND=TOUCHE_MELUSIA;./sons/touche_melusia.wav
LOADSOUND=TOUCHE_LIMASSON;./sons/touche_limasson.wav
LOADSOUND=TOURELLE;./sons/tourelle.wav
LOADSOUND=VENT;./sons/vent.wav
#LOADSOUND=TREMBLEMENT_DE_TERRE;./sons/tremblementterre.wav
Fichier langue.ini
Le moteur de jeu permet de gérer deux langues pour les menus ou les dialogues du jeu.
Le fichier langue.ini contient la langue par défaut choisie par le joueur : cela permet de mémoriser le choix du joueur pour la partie suivante.
#Langues possibles : fr et en
#Ce fichier est mis à jour par le jeu.
LANGUE=fr_
Exemple de fichier per. Chaque personnage du jeu possède un fichier per qui décrit l'ensemble de ses fonctionnalités et animations.
#################################################################
# MJDM fichier de données du personnage humain
#################################################################
###################
# Général #
###################
ID=MARSPERSO_MULTI
IA=-1
DIRECTION_PLANCHE=0
#VITESSE=14
VITESSE=14
VITESSE_CHUTE=24
VITESSE_SAUT=20
VITESSE_BAS=10
POIDS=100
VIE=100;100
MAX_SAUT=12
MAX_SAUT_AUTO=10
MAX_ESCALIER=40
HITBOX=90;45;100;25
OMBRE=./personnages/Mars2/ombre.dec
PARTICULE_TOUCHE=20;-300;100;100;0;15;20;300;300;0;20;150;10;10;255;30;;0;250;30;1;0,8;1;200;1;0;1;0;0;-0,1;2;1;4;12;1;100;100;0;0;0;0;1;1;1;1;0;0;0;0;0
PARTICULE_MORT=20;-400;100;100;0;15;100;-1;999;0;20;150;10;10;255;30;;0;250;30;1;0,8;0;100;1;0;1;0;0;-0,1;2;1;5;15;1;100;100;0;0;0;0;1;1;1;1;0;0;0;0;0
PARTICULE_FIN=20;-450;100;100;0;15;200;-1;999;0;20;150;10;10;255;30;;0;250;30;1;0,8;0;100;1;0;1;0;0;-0,1;2;1;5;15;1;100;100;0;0;0;0;1;1;1;1;0;0;0;0;0
SHADER_LIEN=;0;wave.vert;2;wave_amplitude;vec2;8;8;0;wave_phase;float;0;0,4
###################
#ARME= n°dans le ficher armes.arm;
# active (0=arme non dispo, 1=arme dispo);
# décalage dans les sprites du perso (pour gérer plusieurs visuels de perso adaptés à l'arme en cours);
# nbcanon
###################
#ARME n°1:
ARME=12;1;0;1
XYTIRDEBOUT45=100;-425
XYTIRDEBOUT90=130;-355
XYTIRDEBOUT135=150;-235
XYTIRDEBOUT0=-55;-470
XYTIRDEBOUT180=65;-100
XYTIRBAISSE45=100;-300
XYTIRBAISSE90=140;-235
XYTIRBAISSE135=150;-135
XYTIRBAISSE0=-50;-340
XYTIRBAISSE180=60;-40
XYTIRBAISSEMARCHE45=100;-300
XYTIRBAISSEMARCHE90=140;-235
XYTIRBAISSEMARCHE135=150;-135
XYTIRBAISSEMARCHE0=-50;-340
XYTIRBAISSEMARCHE180=60;-40
#ARME n°2:
ARME=13;1;0;5
XYTIRDEBOUT45=100;-425
XYTIRDEBOUT90=130;-355
XYTIRDEBOUT135=150;-235
XYTIRDEBOUT0=-55;-470
XYTIRDEBOUT180=65;-100
XYTIRBAISSE45=100;-300
XYTIRBAISSE90=140;-235
XYTIRBAISSE135=150;-135
XYTIRBAISSE0=-50;-340
XYTIRBAISSE180=60;-40
XYTIRBAISSEMARCHE45=100;-300
XYTIRBAISSEMARCHE90=140;-235
XYTIRBAISSEMARCHE135=150;-135
XYTIRBAISSEMARCHE0=-50;-340
XYTIRBAISSEMARCHE180=60;-40
#ARME n°3:
ARME=14;1;0;1
XYTIRDEBOUT45=100;-425
XYTIRDEBOUT90=130;-355
XYTIRDEBOUT135=150;-235
XYTIRDEBOUT0=-55;-470
XYTIRDEBOUT180=65;-100
XYTIRBAISSE45=100;-300
XYTIRBAISSE90=140;-235
XYTIRBAISSE135=150;-135
XYTIRBAISSE0=-50;-340
XYTIRBAISSE180=60;-40
XYTIRBAISSEMARCHE45=100;-300
XYTIRBAISSEMARCHE90=140;-235
XYTIRBAISSEMARCHE135=150;-135
XYTIRBAISSEMARCHE0=-50;-340
XYTIRBAISSEMARCHE180=60;-40
#ARME n°4:
ARME=15;1;0;1
XYTIRDEBOUT45=100;-425
XYTIRDEBOUT90=130;-355
XYTIRDEBOUT135=150;-235
XYTIRDEBOUT0=-55;-470
XYTIRDEBOUT180=65;-100
XYTIRBAISSE45=100;-300
XYTIRBAISSE90=140;-235
XYTIRBAISSE135=150;-135
XYTIRBAISSE0=-50;-340
XYTIRBAISSE180=60;-40
XYTIRBAISSEMARCHE45=100;-300
XYTIRBAISSEMARCHE90=140;-235
XYTIRBAISSEMARCHE135=150;-135
XYTIRBAISSEMARCHE0=-50;-340
XYTIRBAISSEMARCHE180=60;-40
#ARME n°5:
ARME=16;1;0;1
XYTIRDEBOUT45=100;-425
XYTIRDEBOUT90=130;-355
XYTIRDEBOUT135=150;-235
XYTIRDEBOUT0=-55;-470
XYTIRDEBOUT180=65;-100
XYTIRBAISSE45=100;-300
XYTIRBAISSE90=140;-235
XYTIRBAISSE135=150;-135
XYTIRBAISSE0=-50;-340
XYTIRBAISSE180=60;-40
XYTIRBAISSEMARCHE45=100;-300
XYTIRBAISSEMARCHE90=140;-235
XYTIRBAISSEMARCHE135=150;-135
XYTIRBAISSEMARCHE0=-50;-340
XYTIRBAISSEMARCHE180=60;-40
#ARME n°6:
ARME=17;1;0;1
XYTIRDEBOUT45=100;-425
XYTIRDEBOUT90=130;-355
XYTIRDEBOUT135=150;-235
XYTIRDEBOUT0=-55;-470
XYTIRDEBOUT180=65;-100
XYTIRBAISSE45=100;-300
XYTIRBAISSE90=140;-235
XYTIRBAISSE135=150;-135
XYTIRBAISSE0=-50;-340
XYTIRBAISSE180=60;-40
XYTIRBAISSEMARCHE45=100;-300
XYTIRBAISSEMARCHE90=140;-235
XYTIRBAISSEMARCHE135=150;-135
XYTIRBAISSEMARCHE0=-50;-340
XYTIRBAISSEMARCHE180=60;-40
#ARME n°7: fleche
ARME=19;1;0;1
XYTIRDEBOUT45=100;-425
XYTIRDEBOUT90=130;-355
XYTIRDEBOUT135=150;-235
XYTIRDEBOUT0=-55;-470
XYTIRDEBOUT180=65;-100
XYTIRBAISSE45=100;-300
XYTIRBAISSE90=140;-235
XYTIRBAISSE135=150;-135
XYTIRBAISSE0=-50;-340
XYTIRBAISSE180=60;-40
XYTIRBAISSEMARCHE45=100;-300
XYTIRBAISSEMARCHE90=140;-235
XYTIRBAISSEMARCHE135=150;-135
XYTIRBAISSEMARCHE0=-50;-340
XYTIRBAISSEMARCHE180=60;-40
NUM_DEBUT_SPRITES_ARME=-1;94
#ARME n°8: grenade
ARME=20;1;0;1
XYTIRDEBOUT45=100;-425
XYTIRDEBOUT90=130;-355
XYTIRDEBOUT135=150;-235
XYTIRDEBOUT0=-55;-470
XYTIRDEBOUT180=65;-100
XYTIRBAISSE45=100;-300
XYTIRBAISSE90=140;-235
XYTIRBAISSE135=150;-135
XYTIRBAISSE0=-50;-340
XYTIRBAISSE180=60;-40
XYTIRBAISSEMARCHE45=100;-300
XYTIRBAISSEMARCHE90=140;-235
XYTIRBAISSEMARCHE135=150;-135
XYTIRBAISSEMARCHE0=-50;-340
XYTIRBAISSEMARCHE180=60;-40
NUM_DEBUT_SPRITES_ARME=47;-1
#ARME n°9: missile
ARME=22;1;0;1
XYTIRDEBOUT45=100;-425
XYTIRDEBOUT90=130;-355
XYTIRDEBOUT135=150;-235
XYTIRDEBOUT0=-55;-470
XYTIRDEBOUT180=65;-100
XYTIRBAISSE45=100;-300
XYTIRBAISSE90=140;-235
XYTIRBAISSE135=150;-135
XYTIRBAISSE0=-50;-340
XYTIRBAISSE180=60;-40
XYTIRBAISSEMARCHE45=100;-300
XYTIRBAISSEMARCHE90=140;-235
XYTIRBAISSEMARCHE135=150;-135
XYTIRBAISSEMARCHE0=-50;-340
XYTIRBAISSEMARCHE180=60;-40
NUM_DEBUT_SPRITES_ARME=47;-1
###ARMES DU MODE AVENTURE:
#ARME n°10: Tir de base avec recharge infinie
ARME=0;1;0;1
ARME_RECHARGE_AUTO=45
XYTIRDEBOUT45=100;-425
XYTIRDEBOUT90=130;-355
XYTIRDEBOUT135=150;-235
XYTIRDEBOUT0=-55;-470
XYTIRDEBOUT180=65;-100
XYTIRBAISSE45=100;-300
XYTIRBAISSE90=140;-235
XYTIRBAISSE135=150;-135
XYTIRBAISSE0=-50;-340
XYTIRBAISSE180=60;-40
XYTIRBAISSEMARCHE45=100;-300
XYTIRBAISSEMARCHE90=140;-235
XYTIRBAISSEMARCHE135=150;-135
XYTIRBAISSEMARCHE0=-50;-340
XYTIRBAISSEMARCHE180=60;-40
#ARME n°11: Kraboum1
ARME=1;1;0;1
XYTIRDEBOUT45=100;-425
XYTIRDEBOUT90=130;-355
XYTIRDEBOUT135=150;-235
XYTIRDEBOUT0=-55;-470
XYTIRDEBOUT180=65;-100
XYTIRBAISSE45=100;-300
XYTIRBAISSE90=140;-235
XYTIRBAISSE135=150;-135
XYTIRBAISSE0=-50;-340
XYTIRBAISSE180=60;-40
XYTIRBAISSEMARCHE45=100;-300
XYTIRBAISSEMARCHE90=140;-235
XYTIRBAISSEMARCHE135=150;-135
XYTIRBAISSEMARCHE0=-50;-340
XYTIRBAISSEMARCHE180=60;-40
#ARME n°12: Kraboum2
ARME=2;1;0;1
XYTIRDEBOUT45=100;-425
XYTIRDEBOUT90=130;-355
XYTIRDEBOUT135=150;-235
XYTIRDEBOUT0=-55;-470
XYTIRDEBOUT180=65;-100
XYTIRBAISSE45=100;-300
XYTIRBAISSE90=140;-235
XYTIRBAISSE135=150;-135
XYTIRBAISSE0=-50;-340
XYTIRBAISSE180=60;-40
XYTIRBAISSEMARCHE45=100;-300
XYTIRBAISSEMARCHE90=140;-235
XYTIRBAISSEMARCHE135=150;-135
XYTIRBAISSEMARCHE0=-50;-340
XYTIRBAISSEMARCHE180=60;-40
#ARME n°13: Kraboum3
ARME=3;1;0;1
XYTIRDEBOUT45=100;-425
XYTIRDEBOUT90=130;-355
XYTIRDEBOUT135=150;-235
XYTIRDEBOUT0=-55;-470
XYTIRDEBOUT180=65;-100
XYTIRBAISSE45=100;-300
XYTIRBAISSE90=140;-235
XYTIRBAISSE135=150;-135
XYTIRBAISSE0=-50;-340
XYTIRBAISSE180=60;-40
XYTIRBAISSEMARCHE45=100;-300
XYTIRBAISSEMARCHE90=140;-235
XYTIRBAISSEMARCHE135=150;-135
XYTIRBAISSEMARCHE0=-50;-340
XYTIRBAISSEMARCHE180=60;-40
#ARME n°14: Arbalete
ARME=4;1;0;1
XYTIRDEBOUT45=100;-425
XYTIRDEBOUT90=130;-355
XYTIRDEBOUT135=150;-235
XYTIRDEBOUT0=-55;-470
XYTIRDEBOUT180=65;-100
XYTIRBAISSE45=100;-300
XYTIRBAISSE90=140;-235
XYTIRBAISSE135=150;-135
XYTIRBAISSE0=-50;-340
XYTIRBAISSE180=60;-40
XYTIRBAISSEMARCHE45=100;-300
XYTIRBAISSEMARCHE90=140;-235
XYTIRBAISSEMARCHE135=150;-135
XYTIRBAISSEMARCHE0=-50;-340
XYTIRBAISSEMARCHE180=60;-40
NUM_DEBUT_SPRITES_ARME=-1;94
#ARME n°15: Lance grenade Lance Roquette
ARME=5;1;0;1
XYTIRDEBOUT45=100;-425
XYTIRDEBOUT90=130;-355
XYTIRDEBOUT135=150;-235
XYTIRDEBOUT0=-55;-470
XYTIRDEBOUT180=65;-100
XYTIRBAISSE45=100;-300
XYTIRBAISSE90=140;-235
XYTIRBAISSE135=150;-135
XYTIRBAISSE0=-50;-340
XYTIRBAISSE180=60;-40
XYTIRBAISSEMARCHE45=100;-300
XYTIRBAISSEMARCHE90=140;-235
XYTIRBAISSEMARCHE135=150;-135
XYTIRBAISSEMARCHE0=-50;-340
XYTIRBAISSEMARCHE180=60;-40
NUM_DEBUT_SPRITES_ARME=47;-1
#ARME n°16: Lance Roquette
ARME=7;1;0;1
XYTIRDEBOUT45=100;-425
XYTIRDEBOUT90=130;-355
XYTIRDEBOUT135=150;-235
XYTIRDEBOUT0=-55;-470
XYTIRDEBOUT180=65;-100
XYTIRBAISSE45=100;-300
XYTIRBAISSE90=140;-235
XYTIRBAISSE135=150;-135
XYTIRBAISSE0=-50;-340
XYTIRBAISSE180=60;-40
XYTIRBAISSEMARCHE45=100;-300
XYTIRBAISSEMARCHE90=140;-235
XYTIRBAISSEMARCHE135=150;-135
XYTIRBAISSEMARCHE0=-50;-340
XYTIRBAISSEMARCHE180=60;-40
NUM_DEBUT_SPRITES_ARME=47;-1
###################
#SPRITES DU PERSO #
###################
#arrêt (0 à 5)
SPRITE2=./personnages/Mars2/attente/se_attente;8;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/attente0/se_attente0_;2;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/attente45/se_attente45_;2;332;460;0;0,1;0;1;1
SPRITE2=./personnages/Mars2/attente90/se_attente90_;8;332;460;0;0,1;0;4;1
SPRITE2=./personnages/Mars2/attente135/se_attente135_;2;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/attente180/se_attente180_;2;332;460;0;0,2;0;1;1
#marche (6 à 11)
SPRITE2=./personnages/Mars2/marche/se_marche;12;332;460;0;1;0;1;0
#SPRITE2=./personnages/Mars2/marche/se_marche;12;332;460;0;1;0;1;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=./personnages/Mars2/marche45/se_marche45_;12;332;460;0;1;0;1;0
SPRITE2=./personnages/Mars2/marche90/se_marche90_;12;332;460;0;1;0;1;0
SPRITE2=./personnages/Mars2/marche135/se_marche135_;12;332;460;0;1;0;1;0
#SPRITE2=./personnages/Mars2/marche/se_marche;12;332;460;0;1;0;1;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
#action (12)
SPRITE2=./personnages/Mars2/action/se_action;12;332;460;0;0,5;1;1;0
#touché ! (13)
SPRITE2=./personnages/Mars2/marche/se_marche;2;332;460;0;0,5;0;1;0
#mort ! (14)
SPRITE2=./personnages/Mars2/mort/se_mort;2;332;460;0;0,5;1;11;0
#saut (15 à 26)
SPRITE2=./personnages/Mars2/saut/se_saut;6;332;460;0;0,5;1;1
SPRITE2=./personnages/Mars2/saut0/se_saut0_0001.png;1;332;460;0;0,5;1;1
SPRITE2=./personnages/Mars2/saut45/se_saut45_0001.png;1;332;460;0;0,5;1;1
SPRITE2=./personnages/Mars2/saut90/se_saut90_0001.png;1;332;460;0;0,5;1;1
SPRITE2=./personnages/Mars2/saut135/se_saut135_0001.png;1;332;460;0;0,5;1;1
SPRITE2=./personnages/Mars2/saut180/se_saut180_0001.png;1;332;460;0;0,5;1;1
SPRITE2=./personnages/Mars2/chute/se_saut;4;332;460;0;0,5;0;12
SPRITE2=./personnages/Mars2/chute0/se_saut0_0001.png;1;332;460;0;0,5;0;1
SPRITE2=./personnages/Mars2/chute45/se_saut45_0001.png;1;332;460;0;0,5;0;1
SPRITE2=./personnages/Mars2/chute90/se_saut90_0001.png;1;332;460;0;0,5;0;1
SPRITE2=./personnages/Mars2/chute135/se_saut135_0001.png;1;332;460;0;0,5;0;1
SPRITE2=./personnages/Mars2/chute180/se_saut180_0001.png;1;332;460;0;0,5;0;1
#réception saut: (27 - 28)
SPRITE2=./personnages/Mars2/saut_reception/se_bas;2;332;460;0;0,25;0;1;0
SPRITE2=./personnages/Mars2/saut_reception_arme/se_bas;2;332;460;0;0,25;0;1;0
#dash (29 - 33)
SPRITE2=./personnages/Mars2/dash0/dash.png;1;332;460;0;0,5;0;1
SPRITE2=./personnages/Mars2/dash45/dash.png;1;332;460;0;0,5;0;1
SPRITE2=./personnages/Mars2/dash90/dash.png;1;332;460;0;0,5;0;1
SPRITE2=./personnages/Mars2/dash135/dash.png;1;332;460;0;0,5;0;1
SPRITE2=./personnages/Mars2/dash180/dash.png;1;332;460;0;0,5;0;1
#victoire (34)
SPRITE2=./personnages/Mars2/victoire/se_victoire;4;332;460;0;0,25;0;4;1
#baissé (35 - 43)
SPRITE2=./personnages/Mars2/baisse/se_bas;3;332;460;0;0,25;0;1;0
SPRITE2=./personnages/Mars2/baisse_finie/se_bas;2;332;460;0;0,05;0;1;0
SPRITE2=./personnages/Mars2/baisse_finie/se_bas;2;332;460;0;0,05;0;1;0
SPRITE2=./personnages/Mars2/baisse_arme/se_bas;3;332;460;0;0,25;0;1;0
SPRITE2=./personnages/Mars2/baisse_finie_0/se_bas;2;332;460;0;0,05;0;1;0
SPRITE2=./personnages/Mars2/baisse_finie_45/se_bas;2;332;460;0;0,05;0;1;0
SPRITE2=./personnages/Mars2/baisse_finie_90/se_bas;2;332;460;0;0,05;0;1;0
SPRITE2=./personnages/Mars2/baisse_finie_135/se_bas;2;332;460;0;0,05;0;1;0
SPRITE2=./personnages/Mars2/baisse_finie_180/se_bas;2;332;460;0;0,05;0;1;0
#paralysé : (44)
SPRITE2=./personnages/Mars2/capture/se_capture;5;332;460;0;0,1;0;1;1
#Coup de pied debout: (45-46)
SPRITE2=./personnages/Mars2/coup_pied/se_couppied;4;332;460;0;0,5;0;1;0
SPRITE2=./personnages/Mars2/coup_pied2/se_couppied;4;332;460;0;0,5;0;1;0
######################## Images des armes à supperposer :
#Lance roquette : (47 - même nbrs de SPRITE2 que pour les anims de bases) : numéro à reporter dans la rubrique arme pour le lanceroquette
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=./personnages/Mars2/arme_lanceroquette/attente0.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/attente45.png;1;332;460;0;0,1;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/attente90.png;1;332;460;0;0,1;0;4;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/attente135.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/attente180.png;1;332;460;0;0,2;0;1;1
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=./personnages/Mars2/arme_lanceroquette/marche45.png;1;332;460;0;0,1;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/marche90.png;1;332;460;0;0,1;0;4;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/marche135.png;1;332;460;0;0,2;0;1;1
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=./personnages/Mars2/arme_lanceroquette/action.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/touche.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/mort.png;1;332;460;0;0,2;0;1;1
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=./personnages/Mars2/arme_lanceroquette/saut0.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/saut45.png;1;332;460;0;0,1;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/saut90.png;1;332;460;0;0,1;0;4;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/saut135.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/saut180.png;1;332;460;0;0,2;0;1;1
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=./personnages/Mars2/arme_lanceroquette/chute0.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/chute45.png;1;332;460;0;0,1;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/chute90.png;1;332;460;0;0,1;0;4;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/chute135.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/chute180.png;1;332;460;0;0,2;0;1;1
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=./personnages/Mars2/arme_lanceroquette/baisse.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/dash0.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/dash45.png;1;332;460;0;0,1;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/dash90.png;1;332;460;0;0,1;0;4;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/dash135.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/dash180.png;1;332;460;0;0,2;0;1;1
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=./personnages/Mars2/arme_lanceroquette/baisse.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/bas0.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/bas45.png;1;332;460;0;0,1;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/bas90.png;1;332;460;0;0,1;0;4;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/bas135.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_lanceroquette/bas180.png;1;332;460;0;0,2;0;1;1
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
########################
#Arbalète : (94 - même nbrs de SPRITE2 que pour les anims de bases) : numéro à reporter dans la rubrique arme pour le lanceroquette
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=./personnages/Mars2/arme_arbalete/attente0.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_arbalete/attente45.png;1;332;460;0;0,1;0;1;1
SPRITE2=./personnages/Mars2/arme_arbalete/attente90.png;1;332;460;0;0,1;0;4;1
SPRITE2=./personnages/Mars2/arme_arbalete/attente135.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_arbalete/attente180.png;1;332;460;0;0,2;0;1;1
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=./personnages/Mars2/arme_arbalete/marche45.png;1;332;460;0;0,1;0;1;1
SPRITE2=./personnages/Mars2/arme_arbalete/marche90.png;1;332;460;0;0,1;0;4;1
SPRITE2=./personnages/Mars2/arme_arbalete/marche135.png;1;332;460;0;0,2;0;1;1
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=./personnages/Mars2/arme_arbalete/touche.png;1;332;460;0;0,2;0;1;1
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=./personnages/Mars2/arme_arbalete/saut0.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_arbalete/saut45.png;1;332;460;0;0,1;0;1;1
SPRITE2=./personnages/Mars2/arme_arbalete/saut90.png;1;332;460;0;0,1;0;4;1
SPRITE2=./personnages/Mars2/arme_arbalete/saut135.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_arbalete/saut180.png;1;332;460;0;0,2;0;1;1
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=./personnages/Mars2/arme_arbalete/chute0.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_arbalete/chute45.png;1;332;460;0;0,1;0;1;1
SPRITE2=./personnages/Mars2/arme_arbalete/chute90.png;1;332;460;0;0,1;0;4;1
SPRITE2=./personnages/Mars2/arme_arbalete/chute135.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_arbalete/chute180.png;1;332;460;0;0,2;0;1;1
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=./personnages/Mars2/arme_arbalete/baisse.png;1;332;460;0;0,2;0;1;1
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=./personnages/Mars2/arme_arbalete/baisse.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_arbalete/bas0.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_arbalete/bas45.png;1;332;460;0;0,1;0;1;1
SPRITE2=./personnages/Mars2/arme_arbalete/bas90.png;1;332;460;0;0,1;0;4;1
SPRITE2=./personnages/Mars2/arme_arbalete/bas135.png;1;332;460;0;0,2;0;1;1
SPRITE2=./personnages/Mars2/arme_arbalete/bas180.png;1;332;460;0;0,2;0;1;1
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
SPRITE2=VIDE;0;0;0;0;0;0;0;0
##########################################
#Position de la tête (origine en bas du sprite) pour la position debout et baissée :
POSITIONTETE=400;200
#Position des pieds (origine en bas du sprite) :
POSITIONPIEDS=30
#Position pour la mitrailleuse (décalage par rapport à l'origine de la mitrailleuse) :
POSITIONMITRAILLEUSE=60;-100
Exemple de fichier dec
Chaque élément graphique du jeu possède un fichier dec. Ce fichier contient non seulement le fichier image du sprite, mais aussi sa hitbox, le son associé, son shader, ses particules, ses éventuels scripts, etc.
ID=DEBUT_DE_NIVEAU
PLANCHE=./decors/Vortex/finniveau.png;
SPRITE=0;0;1;400;400;1
HITBOX=70;90;70;90
PLAYSON=SORTIE;0;4
SHADERSD=heat.frag;3;distortionFactor;float;0,01;0;riseFactor;float;0,02;0;time;float;0;0,3;wave.vert;2;wave_amplitude;vec2;2;2;0;wave_phase;float;0;1,5
PARTICULESD=20;15;10;2;0;0;400;400;10;0;15;100;100;190;10;45;;-1;0;0;1;0,8;1;0;4;1;0;0;0;0;0;1;10;30;0;10;2;0;0;0;1;1;1;1;0;0;0;0;0
Fichier armes.arm
Le fichier des armes (stocké dans ./personnages), contient la description de toutes les armes du jeu.
Les fichiers per font ensuite référence à ces armes via le mot clé ARME=numarme ; 1 ; 0 ; 1
#################################################################
#Fichier contenant toutes les armes du jeu avec leur caractéristiques de base:
#
# //ARME ajoute un nom d'arme, une desc,
# //une vitesse, des dégats, et des munitions (-1 = infini).
# //Le mot clé TIRSPRITE permet d'ajouter une animation de projectile;
# //TIRCANONSPRITE, permet d'ajouter une animation qui sera jouée
# //à chaque tir : par exemple de la fumée ou un halo de lumière qui sort du canon.
# ARME=nom arme;description;vitesseprojectile;degats;munitions;distancemaxdetir
# SPRITETIR=offsetX;offsetY;nbsprites;tailleX;tailleY;vitesseanim
# SPRITETIRCANON=offsetX;offsetY;nbsprites;tailleX;tailleY;vitesseanim
# SPRITETIRIMPACTMUR=offsetX;offsetY;nbsprites;tailleX;tailleY;vitesseanim
# SPRITETIRIMPACTPERSO=offsetX;offsetY;nbsprites;tailleX;tailleY;vitesseanim
#
#ARME n°0: AVENTURE, arme de base de mars
ARME=FAMAS MINIKRABOUM;Flingotron 2000;100;5;25;2000
CADENCETIR=1
PLANCHE=./personnages/armes.png
SPRITETIR=1300;86;1;41;14;0,25
SPRITETIRCANON=213;124;1;40;40;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIRPERSO2
RECUL=2;2
#PARTICULE_TIR=0,5;0,5;4;4;0;0;20;1;70;0;50;20;20;200;20;10;;-1;0;10;0;0,5;0;1;1;0;0;0;0;-1;0;1;4;8;0;4;4;0;0;0;0;1;1;1;1;0;0;0;0;0
#ARME n°1: AVENTURE, arme des snipers
ARME=FAMAS KRABOUMER;Snipe Kraboum;60;50;10;2500
CADENCETIR=1
PLANCHE=./personnages/armes.png
SPRITETIR=1300;145;2;81;20;0,25
SPRITETIRCANON=213;124;1;40;40;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIR_KRABOUMER
RECUL=2;2
#PARTICULE_TIR=0,5;0,5;4;4;0;0;20;1;70;0;50;20;200;20;20;10;;-1;0;10;0;0,5;0;1;1;0;0;0;0;-1;0;1;4;8;0;4;4;0;0;0;0;1;1;1;1;0;0;0;0;0
#ARME n°2: AVENTURE
ARME=FAMAS MAXIKRABOUM;Maxi Kraboumer;100;100;5;2000
CADENCETIR=1
PLANCHE=./personnages/armes.png
SPRITETIR=1300;145;2;81;20;0,25
SPRITETIRCANON=213;124;1;40;40;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIR_KRABOUMER
RECUL=2;2
#PARTICULE_TIR=0,5;0,5;4;4;0;0;20;1;70;0;50;20;200;20;20;10;;-1;0;10;0;0,5;0;1;1;0;0;0;0;-1;0;1;4;8;0;4;4;0;0;0;0;1;1;1;1;0;0;0;0;0
#ARME n°3: arme des soldats ennemis
ARME=FAMAS MINIKRABOUM V2;Kraboum d'assaut;60;20;25;2000
CADENCETIR=2
PLANCHE=./personnages/armes.png
SPRITETIR=1300;86;1;41;14;0,25
SPRITETIRCANON=213;124;1;40;40;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIRPERSO2
RECUL=2;2
COLOR=250;200;0;255
#PARTICULE_TIR=0,5;0,5;4;4;0;0;20;1;70;0;50;250;100;0;20;10;;-1;0;10;0;0,5;0;1;1;0;0;0;0;-1;0;1;4;8;0;4;4;0;0;0;0;1;1;1;1;0;0;0;0;0
#ARME n°4: Arbalete
ARME=ARME 8;Arbalete;70;100;99;8000
CADENCETIR=1
PLANCHE=./personnages/armes.png
SPRITETIR=1460;145;1;100;20;0,25
SPRITETIRCANON=0;0;1;1;1;0,5
SPRITETIRIMPACTMUR=1560;145;1;100;20;0,25
SPRITETIRIMPACTPERSO=1560;145;1;100;20;0,25
SON=TIR_FLECHE
RECUL=2;2
ORIGINE_SPRITETIR=80;10
ORIGINE_SPRITETIR_IMPACT=80;10
PARTICULE_TIR=4;4;1;1;0;0,5;10;1;60;0;1;0;255;0;150;50;;6;0;10;0;0,5;1;10;3;0;0;0;0;0,1;25;1;6;10;0;1;1;0;0;0;0;1;1;1;1;0;0;0;0;0
#ARME n°5: grenade
ARME=ARME 9;Grenade;30;100;99;8000
CADENCETIR=1
PLANCHE=./personnages/armes.png
SPRITETIR=1460;175;1;25;25;0,25
SPRITETIRCANON=0;0;1;1;1;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIR_GRENADE
RECUL=2;2
ORIGINE_SPRITETIR=12;12
ORIGINE_SPRITETIR_IMPACT=12;12
PARTICULE_TIR=4;4;1;1;0;0,5;10;1;60;0;1;0;0;255;150;50;;6;0;10;0;0,5;1;10;3;0;0;0;0;0,1;25;1;6;10;0;1;1;0;0;0;0;1;1;1;1;0;0;0;0;0
PARTICULE_TIR2=4;4;1;1;0;0,5;10;1;60;0;1;255;0;0;150;50;;6;0;10;0;0,5;1;10;3;0;0;0;0;0,1;25;1;6;10;0;1;1;0;0;0;0;1;1;1;1;0;0;0;0;0
#ARME n°6: ---pas utilisé--- (le shrapnel est le meme en multi et en aventure => cf n°21)
ARME=???;???;10;50;1;200
CADENCETIR=1
PLANCHE=./personnages/armes.png
SPRITETIR=1490;175;1;10;10;0,25
SPRITETIRCANON=0;0;1;1;1;0,5
SPRITETIRIMPACTMUR=0;0;1;1;1;0,5
SPRITETIRIMPACTPERSO=0;0;1;1;1;0,5
SON=TIR_GRENADE
RECUL=0;0
ORIGINE_SPRITETIR=3;3
ORIGINE_SPRITETIR_IMPACT=3;3
#ARME n°7: missile
ARME=ARME 10;Missile;6;1000;99;2500
CADENCETIR=1
PLANCHE=./personnages/armes.png
SPRITETIR=1660;145;1;60;25;0,25
SPRITETIRCANON=0;0;1;1;1;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIR_GRENADE
RECUL=2;2
ORIGINE_SPRITETIR=30;12
ORIGINE_SPRITETIR_IMPACT=30;12
PARTICULE_TIR=4;4;1;1;0;0,5;10;1;60;0;1;0;0;255;150;50;;6;0;10;0;0,5;1;10;3;0;0;0;0;0,1;25;1;6;10;0;1;1;0;0;0;0;1;1;1;1;0;0;0;0;0
PARTICULE_TIR2=4;4;1;1;0;0,5;10;1;60;0;1;255;0;0;150;50;;6;0;10;0;0,5;1;10;3;0;0;0;0;0,1;25;1;6;10;0;1;1;0;0;0;0;1;1;1;1;0;0;0;0;0
#ARME n°8: missile 2 (pas utilisé pour le moment !!!)
ARME=ARME 10;Missile 2;6;2000;3;8000
CADENCETIR=1
PLANCHE=./personnages/armes.png
SPRITETIR=1660;145;1;60;25;0,25
SPRITETIRCANON=0;0;1;1;1;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIR_GRENADE
RECUL=2;2
ORIGINE_SPRITETIR=30;12
ORIGINE_SPRITETIR_IMPACT=30;12
PARTICULE_TIR=4;4;1;1;0;0,5;10;1;60;0;1;0;0;255;150;50;;6;0;10;0;0,5;1;10;3;0;0;0;0;0,1;25;1;6;10;0;1;1;0;0;0;0;1;1;1;1;0;0;0;0;0
PARTICULE_TIR2=4;4;1;1;0;0,5;10;1;60;0;1;255;0;0;150;50;;6;0;10;0;0,5;1;10;3;0;0;0;0;0,1;25;1;6;10;0;1;1;0;0;0;0;1;1;1;1;0;0;0;0;0
#ARME n°9: (vaisseau de mars)
ARME=CANON à énergie;Arme principale du vaisseau "Le Mars & Grisoux";40;25;-1;1100
PLANCHE=./personnages/armes.png
SPRITETIR=1050;70;1;50;30;0,5
SPRITETIRCANON=1050;40;2;50;30;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIR_PHASER
#ARME n°10: (vaisseau ennemie)
ARME=Double CANON à énergie;Empire Stylys;8;4;500;2000
PLANCHE=./personnages/armes.png
SPRITETIR=100;120;2;20;20;0,25
SPRITETIRCANON=9;158;1;25;25;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIR_PHASER
#ARME n°11: (vaisseau ennemie n°10 : gros vaisseau ) 3 canons)
ARME=Triple CANON à énergie;Empire Stylys;8;4;500;2000
PLANCHE=./personnages/armes.png
SPRITETIR=1050;100;3;40;40;0,25
SPRITETIRCANON=1180;100;1;100;100;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIR_PHASER
######################## ARMES DU MODE MULTI ##############################
#ARME n°12: (MULTI 1)
ARME=ARME 1;Phaser !;40;1;80;800
CADENCETIR=10
PLANCHE=./personnages/armes.png
SPRITETIR=1300;185;2;34;15;0,5
SPRITETIRCANON=213;124;1;40;40;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIR_PHASER
RECUL=6;2
PARTICULE_TIR=40;40;10;10;0;0,2;10;1;4;1;1;180;180;0;200;50;;-1;0;10;0;0,1;1;1;50;0;1;0;0;2;30;1;8;14;0;10;10;0;0;0;0;1;1;1;1;0;0;0;0;0
#ARME n°13: (MULTI 2)
ARME=ARME 2;Pinker !;50;6;5;1500
CADENCETIR=1
PLANCHE=./personnages/armes.png
SPRITETIR=1300;166;2;48;19;0,5
SPRITETIRCANON=1050;40;2;50;30;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIR_PINKER
RECUL=8;4
#PARTICULE_TIR=5;5;70;70;0;0;3;10;20;0;10;170;15;100;255;120;;1;0;10;1;0,8;0;1;10;0;0;10;0;1;12;1;3;6;0;70;70;0;0;0;0;1;1;1;1;0;0;0;0;0
#ARME n°14: (MULTI 3)
ARME=ARME 3;Kraboumer !;60;100;5;2500
CADENCETIR=1
PLANCHE=./personnages/armes.png
SPRITETIR=1300;145;2;81;20;0,25
SPRITETIRCANON=213;124;1;40;40;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIR_KRABOUMER
RECUL=10;6
PARTICULE_TIR=0,5;0,5;4;4;0;0;10;1;70;0;50;20;200;20;20;10;;-1;0;10;0;0,5;0;1;1;0;0;0;0;-1;0;1;4;8;0;4;4;0;0;0;0;1;1;1;1;0;0;0;0;0
#ARME n°15: (MULTI 4)
ARME=ARME 4;Mine !;0;100;3;100
CADENCETIR=1
PLANCHE=./personnages/armes.png
SPRITETIR=1300;0;2;32;48;0,25
ORIGINE_SPRITETIR=16;48
SPRITETIRCANON=213;124;1;40;40;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIR_MINE
#ARME n°16: (MULTI 5)
ARME=ARME 5;Laser !;200;8;12;2500
CADENCETIR=1
PLANCHE=./personnages/armes.png
SPRITETIR=1300;139;1;268;7;0,25
SPRITETIRCANON=213;124;1;40;40;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIR_LASER
PARTICULE_TIR=3;3;20;20;0;0;5;1;1;0;50;255;255;255;255;0;;1;0;10;1;0;0;1;10;0;0;0;0;2;30;1;30;40;0;20;20;0;0;0;0;1;1;1;1;0;0;0;0;0
#ARME n°17: (MULTI 6)
ARME=ARME 6;Rocker !;25;10;12;2500
CADENCETIR=1
PLANCHE=./personnages/armes.png
SPRITETIR=1300;100;1;61;32;0,25
SPRITETIRCANON=213;124;1;40;40;0,5
SPRITETIRIMPACTMUR=1368;0;3;100;100;0,25
SPRITETIRIMPACTPERSO=1368;0;3;100;100;0,25
SON=TIR_ROCKER
#ARME n°18: (MULTI 7 : mitrailleuse)
ARME=ARME 7;Mitrailleuse;70;5;1000;2500
CADENCETIR=5
PLANCHE=./personnages/armes.png
SPRITETIR=200;184;2;26;13;0,25
SPRITETIRCANON=9;158;1;25;25;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIR_MITRAILLEUSE
#ARME n°19: (MULTI 8 - mode archer)
ARME=ARME 8;Fleche !;70;100;6;8000
CADENCETIR=1
PLANCHE=./personnages/armes.png
SPRITETIR=1460;145;1;100;20;0,25
SPRITETIRCANON=0;0;1;1;1;0,5
SPRITETIRIMPACTMUR=1560;145;1;100;20;0,25
SPRITETIRIMPACTPERSO=1560;145;1;100;20;0,25
SON=TIR_FLECHE
RECUL=2;2
ORIGINE_SPRITETIR=80;10
ORIGINE_SPRITETIR_IMPACT=80;10
PARTICULE_TIR=4;4;1;1;0;0,5;10;1;60;0;1;0;255;0;150;50;;6;0;10;0;0,5;1;10;3;0;0;0;0;0,1;25;1;6;10;0;1;1;0;0;0;0;1;1;1;1;0;0;0;0;0
#ARME n°20: (MULTI 9 - grenade)
ARME=ARME 9;Grenade !;30;100;3;8000
CADENCETIR=1
PLANCHE=./personnages/armes.png
SPRITETIR=1460;175;1;25;25;0,25
SPRITETIRCANON=0;0;1;1;1;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIR_GRENADE
RECUL=2;2
ORIGINE_SPRITETIR=12;12
ORIGINE_SPRITETIR_IMPACT=12;12
PARTICULE_TIR=4;4;1;1;0;0,5;10;1;60;0;1;0;0;255;150;50;;6;0;10;0;0,5;1;10;3;0;0;0;0;0,1;25;1;6;10;0;1;1;0;0;0;0;1;1;1;1;0;0;0;0;0
PARTICULE_TIR2=4;4;1;1;0;0,5;10;1;60;0;1;255;0;0;150;50;;6;0;10;0;0,5;1;10;3;0;0;0;0;0,1;25;1;6;10;0;1;1;0;0;0;0;1;1;1;1;0;0;0;0;0
#ARME n°21: (MULTI 9-1 - shrapnel de grenade)
ARME=ARME 9-1;Shrapnel;15;20;1;300
CADENCETIR=1
PLANCHE=./personnages/armes.png
SPRITETIR=1490;175;1;10;10;0,25
SPRITETIRCANON=0;0;1;1;1;0,5
SPRITETIRIMPACTMUR=0;0;1;1;1;0,5
SPRITETIRIMPACTPERSO=0;0;1;1;1;0,5
SON=TIR_GRENADE
RECUL=0;0
ORIGINE_SPRITETIR=3;3
ORIGINE_SPRITETIR_IMPACT=3;3
#ARME n°22: (MULTI 10 - missile)
ARME=ARME 10;Missile !;6;100;3;8000
CADENCETIR=1
PLANCHE=./personnages/armes.png
SPRITETIR=1660;145;1;60;25;0,25
SPRITETIRCANON=0;0;1;1;1;0,5
SPRITETIRIMPACTMUR=0;0;16;64;64;0,5
SPRITETIRIMPACTPERSO=0;0;16;64;64;0,5
SON=TIR_GRENADE
RECUL=2;2
ORIGINE_SPRITETIR=30;12
ORIGINE_SPRITETIR_IMPACT=30;12
PARTICULE_TIR=4;4;1;1;0;0,5;10;1;60;0;1;0;0;255;150;50;;6;0;10;0;0,5;1;10;3;0;0;0;0;0,1;25;1;6;10;0;1;1;0;0;0;0;1;1;1;1;0;0;0;0;0
PARTICULE_TIR2=4;4;1;1;0;0,5;10;1;60;0;1;255;0;0;150;50;;6;0;10;0;0,5;1;10;3;0;0;0;0;0,1;25;1;6;10;0;1;1;0;0;0;0;1;1;1;1;0;0;0;0;0
Exemple de fichier niv
#################################################################
# MJDM fichier de données
# Ne pas éditer : fichier généré par l'éditeur MJDM
#################################################################
INFOS=1
IMAGECHARGEMENT=./menus/transition2.png
NOM=Niveau 2;2
TAILLEJEU=7 000;1 200
SCROLLVUE=4;1;2
SCROLLPLAN0=0,2;0,2
SCROLLPLAN1=0,1;0,1
SCROLLPLAN2=0;0
SCROLLPLAN3=0,1;0,1
SCROLLPLAN4=0,2;0,2
SCROLLPLAN5=0,8;0,5
TYPEJEU=0
ZONE=1;10;10;10 800;1 500
MUSIQUE=;0
MUSIQUE_AMBIANCE=;0
CHRONO=9 999
ETOILES=0;0;0
PLUIE_METEORES=0
CARTE=1
FONDCOULEUR=54;136;220;255
FOND=./fonds/lavandes.png;-500;-1 000;1
FONDCOULEUR=54;136;220;255
SHADERBLUR=0;0
SHADERBLUR=1;0
SHADERBLUR=2;0
SHADERBLUR=3;0
SHADERBLUR=4;0
SHADERBLUR=5;0
EFFET_PLUIE=0
EFFET_NEIGE=0;0
EFFET_LUCIOLES=1;500
EFFET_BROUILLARD=0
EFFET_NUAGES=1
EFFET_ETOILES=0;0
EFFET_NUAGEPOUSSIERE=0
EFFET_ORAGE=0
POUSSIERE_PAS=./effets/poussiere.dec
TRACE_PAS=./effets/pasdunes.png
FREE_TEXTURE_MEM=1
TEXTURE_PER=./ia/ia-char.per;CHAR
TEXTURE_PER=./personnages/mars2_multi.per;MARSPERSO_MULTI
TEXTURE_PER=./ia/ia-moine.per;MOINE
TEXTURE_DEC=./decors/Vortex/debutniveau.dec;DEBUT_DE_NIVEAU
TEXTURE_DEC=./decors/Divers/SDvide.dec;DECVIDE
TEXTURE_DEC=./decors/Sols/dune.dec;DUNE
TEXTURE_DEC=./decors/Vortex/finniveau.dec;FIN_DE_NIVEAU
TEXTURE_DEC=./decors/Divers/fontainedarmes.dec;FONTAINEDARMES
TEXTURE_DEC=./decors/Batiments/murdepierre-fenetre.dec;MUR_DE_PIERRE_FENETRE
TEXTURE_DEC=./decors/Batiments/pilierdepierre-ap.dec;PILIER_DE_PIERRE_AP
TEXTURE_DEC=./decors/ShadersGlob/SD_SHADER_BLAST.dec;SD_SHADER_GLOB_BLAST
TEXTURE_DEC=./decors/ShadersGlob/SD_SHADER_BLUR.dec;SD_SHADER_GLOB_BLUR
PERSO=MARSPERSO_MULTI;230;400;1;0,4;0,4;100;0
NUMJOUEUR=0
PERSO_COLOR=255;255;255;255
PERSO=MARSPERSO_MULTI;250;400;1;0,4;0,4;100;0
NUMJOUEUR=0
PERSO_COLOR=255;255;255;255
PERSO=MARSPERSO_MULTI;270;400;1;0,4;0,4;100;0
NUMJOUEUR=0
PERSO_COLOR=255;255;255;255
IA=CHAR;4 880;938;0;1,2;1,2;100;1;2
ROTIA=1
OMBREIA=1;0;1 080;0,65;1,25;100
IA=MOINE;1 298;912;1;1,1;1,1;100;1;2
OMBREIA=1;1;0;0,3;0,15;350
CHEMINSIMPLE=0;10;1
SD=DUNE;2 526;1 216;2;750;219;349;0;1;-1;1,8;1,8;0;0;0;0;0;0;0
COLSD=249;175;128;255
SD=DECVIDE;558;535;2;50;50;0;0;1;1;0,6;0,6;0;0;0;0;0;0;0
IDSD=SCRIPT_DEBUT
SCRIPTRUN=./niveaux/niveau104/debut.scp;12;0;1
SD=DUNE;7 927;1 295;2;750;219;351;0;1;-1;1,8;1,8;0;0;0;0;0;0;0
COLSD=255;155;88;255
SD=DUNE;10 079;1 361;2;750;219;351;0;1;-1;1,8;1,8;0;0;0;0;0;0;0
COLSD=255;155;88;255
SD=DUNE;1 775;1 121;2;750;219;9;0;1;1;1;1;0;0;0;0;0;0;0
COLSD=252;177;116;255
SD=DUNE;6 616;1 262;2;750;219;351;0;1;-1;1;1;0;0;0;0;0;0;0
SD=DUNE;5 724;1 274;2;750;219;351;0;1;-1;1,8;1,8;0;0;0;0;0;0;0
LOCK=1
COLSD=255;155;88;255
SD=DUNE;3 582;1 300;2;750;219;347;0;1;-1;1,8;1,8;0;0;0;0;0;0;0
COLSD=249;175;128;255
SD=FIN_DE_NIVEAU;10 382;246;2;200;200;0;0;1;1;1;1;0;0;0;0;1;0;0
IDSD=VORTEX_FIN
SHADERSD=heat.frag;3;distortionFactor;float;0,01;0;riseFactor;float;0,02;0;time;float;0;0,3;wave.vert;2;wave_amplitude;vec2;2;2;0;wave_phase;float;0;1,5
VOLUMESON=0
PARTICULESD=20;15;10;2;0;0;400;400;10;0;15;100;100;190;10;45;;-1;0;0;1;0,8;1;0;4;1;0;0;0;0;0;1;10;30;0;10;2;0;0;0;1;1;1;1;0;0;0;0;0
OMBRESD=0,8;0,3;34;1 000;-5;0
SD=DUNE;478;1 300;2;750;219;353;0;1;1;1;1;0;0;0;0;0;0;0
COLSD=252;177;116;255
SD=SD_SHADER_GLOB_BLAST;590;195;2;50;50;0;0;1;1;1;1;0;0;0;0;0;0;0
IDSD=SHADER_BLAST_VORTEX
SHADERSD=ondechoc.frag;3;center;vec2;0,0851562;0,720833;0;shockParams;vec3;10;0,25;0,1;0;time;float;0;100;;0
SD=SD_SHADER_GLOB_BLUR;591;311;2;50;50;0;0;1;1;1;1;0;0;0;0;0;0;0
IDSD=SHADER_BLUR
SHADERSD=blur.frag;1;blur_radius;float;0,004;0;;0
SD=FONTAINEDARMES;3 046;1 112;2;250;99;0;0;1;1;1;1;0;0;0;0;0;0;0
VOLUMESON=50
OMBRESD=1;1;2;6;0;0
SD=DEBUT_DE_NIVEAU;230;402;2;200;200;0;0;1;1;1;1;0;0;0;0;1;0;0
IDSD=VORTEX_DEBUT
SHADERSD=heat.frag;3;distortionFactor;float;0,01;0;riseFactor;float;0,02;0;time;float;0;0,3;wave.vert;2;wave_amplitude;vec2;2;2;0;wave_phase;float;0;1,5
VOLUMESON=50
PARTICULESD=20;15;10;2;0;0;400;400;10;0;15;200;150;0;60;60;;-1;0;0;1;0,8;1;0;4;1;0;0;0;0;0;1;10;30;0;10;2;0;0;0;1;1;1;1;0;0;0;0;0
OMBRESD=0,8;0,3;26;892;-5;0
SD=DUNE;739;1 368;2;750;219;353;0;1;1;1;1;0;0;0;0;0;0;0
COLSD=252;177;116;255
SD=MUR_DE_PIERRE_FENETRE;1 372;926;2;535;303;0;0;1;1;0,4;0,4;0;0;0;0;0;0;0
SD=MUR_DE_PIERRE_FENETRE;1 382;704;2;535;303;0;0;1;1;0,4;0,4;0;0;0;0;0;0;0
SD=PILIER_DE_PIERRE_AP;1 154;796;2;100;272;0;0;1;1;1;1;0;0;0;0;0;0;0
SD=PILIER_DE_PIERRE_AP;1 610;774;2;100;272;0;0;1;1;1;1;0;0;0;0;0;0;0
SD=PILIER_DE_PIERRE_AP;1 117;826;2;100;272;0;0;1;1;1;1;0;0;0;0;0;0;0
SD=PILIER_DE_PIERRE_AP;1 707;764;2;100;272;0;0;1;1;1;1;0;0;0;0;0;0;0
SD=PILIER_DE_PIERRE_AP;1 415;546;2;100;272;90;0;1;1;1;1;0;0;0;0;0;0;0