Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Vos tutoriels et astuces


Index du Forum » Vos tutoriels et astuces » [C-Engine] n°3 : Ajout d'une map
Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

[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);



Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

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.
Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

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.
It's Show Time !!!
Mes Jeux :
- Street Fighter : Pour les accrocs du free-fight.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".


< Le recoin du C-Engine >
Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

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.
Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

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.
It's Show Time !!!
Mes Jeux :
- Street Fighter : Pour les accrocs du free-fight.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".


< Le recoin du C-Engine >
Darkysun Hors ligne Membre Points: 1747 Défis: 52 Message

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 :
Game.AffectMap( &Niveau);

Si je ne réponds pas à un post depuis trop longtemps : envoyez-moi un message pour me le rappeler !




Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

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.
It's Show Time !!!
Mes Jeux :
- Street Fighter : Pour les accrocs du free-fight.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".


< Le recoin du C-Engine >

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 97 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd