[C-Engine] n°3 : Ajout d'une map
Posté le 29/02/2016 18:54
Si vous avez loupé le deuxième tutoriel sur l'installation c'est
-ici-
Nous allons aujourd'hui apprendre comment créer une map avec le C-Engine.
Etape 1 : Qu'est ce que le TileMaping.
Comme beaucoup de vieux jeux, le C-Engine utilise le procédé du "TileMaping", je pense que tout le monde connait le principe d'utiliser des blocs pour constituer une map.
Si vous ne maîtrisez pas le procédé, il existe un très bon tutoriel sur le sujet, le voici :
Présentation
Etape 2 : Création de la map.
L’intérêt du TileMapping est un gain de temps, de place en mémoire et facilite la gestion des collisions.
Pour commencer, je vais vous fournir un tileset et une map que vous pourrez modifier par la suite.
const unsigned char tileset[]={0x0, 0x3f, 0x0, 0x3f, 0x0, 0x3f, 0x0, 0x3f, 0x0, 0x3f, 0x0, 0x3f, 0x0, 0x3f, 0x0, 0x3f, 0x0, 0x3f, 0x0, 0x3f, 0xff, 0xff, 0x0, 0x3f, 0xaa, 0xbf, 0x55, 0x7f, 0x0, 0x3f, 0x0, 0x3f, 0x0, 0x3f, 0x0, 0x3f, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x81, 0x7f, 0x81, 0x7f, 0xff, 0xff, 0x88, 0x7f, 0x88, 0x7f, 0xff, 0xff, 0x81, 0x7f, 0x81, 0x7f, 0xff, 0xff, 0x7f, 0xbf, 0x80, 0x7f, 0x8c, 0x7f, 0x92, 0x7f, 0x82, 0x7f, 0x8c, 0x7f, 0x80, 0x7f, 0x88, 0x7f, 0x80, 0x7f, 0x7f, 0xbf, };
bool tileprop[]= { false , true , true, true };// ou bool tileprop[]= { 0,1,1,1};
const unsigned char map[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x03,0x00,0x00,0x02,0x03,0x02,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
};
Introduisez ce code à la suite de la création de l'objet "Perso". Le TileProp permet d'identifier quel bloc est solide ou non.
Ensuite nous allons créer le niveau qui est la réunion des trois éléments.
Voici le code:
Map Niveau;
Niveau.SetMap(tileset , map , tileprop , 10 , 10 , 20 ,6);
Tout d'abord nous passons en argument le tileset puis la map, le tileprop, la taille des tiles en x et y et enfin la taille du niveau en x et y unité le bloc.
Etape 3 : Intégration au moteur.
Comme précédament pour l'objet, nous devons spécifier au moteur qu'il possède une map. Et que la map est reliée à un moteur.
Pour cela il suffit d'écrire.
Game.AffectMap( &Niveau);
Citer : Posté le 01/03/2016 08:58 | #
Hé mais c'est juste génial, ça me donne envie de tester ton truc, à quand la compatibilité SH4?
Je mets tout de suite dans ma signature que je te soutien.
Citer : Posté le 01/03/2016 11:53 | #
C'est compatible SH4, il suffit d'utiliser le SH4compatibility si tu veut le mettre sur Sh4. http://tools.planet-casio.com/SH4compatibility/
Merci pour ton soutien.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".
Citer : Posté le 01/03/2016 13:47 | #
D'accord, c'est que tu avais dis que tu ne l'avais pas encore fait, donc je voulais savoir. Et c'est le c-engine qui doit passer à la moulinette, ou les programmes créé avec?
Et je mettrai un lien dans ma signature vers l'actualité du c-engine ce WE, quand j'aurai accès à mon PC.
Citer : Posté le 01/03/2016 14:40 | #
C est le programme créé qui doit passer a la moulinette. Ensuite sur Planet casio, je propose la version Sh3 et Sh4 du jeu dans le même .zip comme pour kirby ou l invasion senchans.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".
Citer : Posté le 18/04/2016 20:25 | #
Ah j'ai trouvé pourquoi ma map ne s'affichait pas tu as oublié de préciser qu'il fallait ajouter cette ligne avec les autres dans le moteur :
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 18/04/2016 20:36 | #
Elle était déjà écrite.
Ajouté le 12/05/2016 à 17:55 :
Mise à jour du format de la map, a prendre en compte si vous utilisez encore l'ancien type d'encodage de map.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".