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°5: Créer votre propre décor
Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

[ C-Engine ] n°5: Créer votre propre décor

Posté le 24/03/2016 08:50

Bienvenue dans ce tutoriel pour apprendre à créer votre propre décor. Si vous n'avez pas encore appris à ajouter une map au C-Engine c'est -ici-

Etape 1 : Création du tileset.

Un tileset doit être constitué d'un ensemble de briques ( tiles ) de taille fixe. De plus le tileset ne doit être qu'une seule image, il est donc primordial que les tiles soit placés l'un en dessous de l'autre, sans espace pour économiser de la place.

Pour apprendre à créer un bon tileset voici le tutoriel de Siapran qui nous montre une bonne méthode pour créer des tiles. Tuto de Siapran

Une fois que votre tileset est terminé, il devrait ressembler à ce format :



Etape 2 : Création de la map.

Vous êtes tout excité pour avoir créé votre tileset que vous ne voulez pas en restez la. J'aurai très bien pu vous montrer la méthode de l'âge de pierre pour créer la map mais je ne suis pas sadique ( enfin pas trop, surtout que je n'ai pas envie de le rédiger ). Bref, nous somme en 2016 et la technologie a beaucoup évolué, et il existe le logiciel "Tiled".

Voici un lien pour télécharger ce logiciel : http://www.mapeditor.org/ .

Après que vous aurez appris à utiliser ce logiciel avec ce tutoriel , vous voudrez enregistrer votre map et l'insérer dans le C-Engine.

Etape 3 : Conversion de la map.

Dans Tiled, exporter votre map au format ".csv" , ensuite télécharger le convertisseur csv -> C-Engine qui se trouve dans le recoin du C-Engine.

Décompressez le fichier puis coller votre .csv généré dans le dossier convertisseur. Ensuite renommé le "????".csv en "map.csv".

Ensuite exécuté le .bat, il générera un fichier texte du nom de "map.txt".

A l'intérieur du fichier texte se trouve le code à insérer dans le C-Engine pour implémenter sa map comme dans le tuto n°3.

Merci d'avoir suivi ce tutoriel, le prochain portera sur l'ajout d'objectif à votre jeu.


Fichier joint


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

Citer : Posté le 01/05/2016 15:32 | #


Effectivement le C-Engine peut gérée plus de 250 tiles différents, cependant il va falloir que je modifie un petit peu le code.
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 >
Aragorn Hors ligne Membre Points: 807 Défis: 5 Message

Citer : Posté le 01/05/2016 17:37 | #


Ok, merci beaucoup.

Voici un petit aperçu de la map :

Il y a la forêt Kokiri, la plaine d'hyrule, le désert et la montagne Goron.





Mes Programmes
Cliquer pour enrouler
The Legend of CASIO - Basic Quest ( Basic )
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Projets
Cliquer pour enrouler
Zelda Ancestral Relics ( projet en C )
Projets que je soutient
Cliquer pour enrouler
Pokémon jade de Dodormeur
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun




Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.
Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

Citer : Posté le 01/05/2016 17:38 | #


Pas mal , c'est du 8*8 ?
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 >
Aragorn Hors ligne Membre Points: 807 Défis: 5 Message

Citer : Posté le 01/05/2016 17:49 | #


Merci

En effet, c'est du 8*8, j'avais commencé un projet en 16*16 (taille des tiles des zelda originaux), mais on ne pouvait afficher que 4*8 tiles à la fois.
Avec des tiles en 8*8, j'en affiche autant que sur gameboy et gameboy color.

Ajouté le 04/05/2016 à 14:13 :
J'ai un petit problème : j'ai appliqué le tuto 3 à la lettre, et j'obtiens ça :


(dans les paramètres de Tiled, pour la numérotation, j'ai indiqué : haut gauche, au lieu de bas droite par défaut, le problème vient peut-être de là)

Mon code :
Cliquer pour enrouler
#include "..\C-Engine\CHeader.hpp"

int Jeu()
{

    const unsigned char I_Perso1_1[]={0xe, 0x3f, 0x11, 0x3f, 0x60, 0xff, 0x51, 0x7f, 0x32, 0xbf, 0x1b, 0xff, 0x25, 0x7f, 0x20, 0xff, 0x3f, 0xbf, 0x1b, 0x3f, };
    const unsigned char I_Perso1_2[]={0xff, 0xff, 0xf1, 0xff, 0xe0, 0xff, 0xd1, 0x7f, 0xf2, 0xff, 0xfb, 0xff, 0xe5, 0x7f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, };
    
    Sprite S_Perso1_1( I_Perso1_1 , 10 , 10 );
    Sprite S_Perso1_2( I_Perso1_2 , 10 , 10 );

    Sprite S_Perso1[]={ S_Perso1_1 , S_Perso1_2 };

    Animation A_Perso( S_Perso1 , 2 , 20 );

    Object Perso;

    const unsigned char tileset[]={
    0x3f,
    0x60,
    ...
    0xf9,
    0xff,
};
    
    bool tileprop[]= { false , false ,false ,false ,false ,false ,false ,false ,false ,false ,false ,false ,false ,false ,false ,false ,false ,false ,false ,false ,true, false ,false ,false ,false ,false ,false ,false ,false ,false ,false ,false ,false ,false ,false
...
false, false, false, true, false, false, false, true,  false, false, false, false, false, false, false, false, false, false, false, false, true};
    

    const unsigned char * map[]={
    "788686868686868686868686868686868686868686868686868686868686868686868
...
686868686868686868686868686868686868686868686868686868686868686868686868686841<1>\`\`Z_\`_ZZZ_Z\`\`_Z1<1>Z_1<1>1<1>1<1>1<1>ZZ1<1>1<1>1<1>1<1>1<1>1<1>1<1>1<1>Z",
};


    Map Niveau;
    Niveau.SetMap(tileset , map , tileprop , 8 , 8 , 100 ,64);

    Perso.GetTransforms()->SetXY( 50 , 25 );
    Perso.GetRender()->SetRender( A_Perso );


    Engine Game;

    Game.AddObject( &Perso);
    Game.AffectMap( &Niveau);

    Game.Game();

    return 1;
}

extern "C"
{
int AddIn_main(int isAppli, unsigned short OptionNum)
{
    Jeu();
    return 1;
}


#pragma section _BR_Size
unsigned long BR_Size;
#pragma section


#pragma section _TOP

int InitializeSystem(int isAppli, unsigned short OptionNum)
{
    return INIT_ADDIN_APPLICATION(isAppli, OptionNum);
}

Mes Programmes
Cliquer pour enrouler
The Legend of CASIO - Basic Quest ( Basic )
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Projets
Cliquer pour enrouler
Zelda Ancestral Relics ( projet en C )
Projets que je soutient
Cliquer pour enrouler
Pokémon jade de Dodormeur
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun




Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.
Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

Citer : Posté le 04/05/2016 14:14 | #


Aragorn : awesome. Ta map est juste magnifique !
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Aragorn Hors ligne Membre Points: 807 Défis: 5 Message

Citer : Posté le 04/05/2016 14:18 | #


Merci, j'y ai passé pas mal de temps.

Et cette fois ci, je pense bien finir ce zelda dès que j'aurais fini mon bac.Je me suis accordé une semaine de repos après l'épreuve, avant d'attaquer le programme de prépa et les révisions. Du coup j'aurais pas mal de temps libre pour coder pendant cette semaine.
Mes Programmes
Cliquer pour enrouler
The Legend of CASIO - Basic Quest ( Basic )
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Projets
Cliquer pour enrouler
Zelda Ancestral Relics ( projet en C )
Projets que je soutient
Cliquer pour enrouler
Pokémon jade de Dodormeur
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun




Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 04/05/2016 14:21 | #


Aragon, tu peux réduire le tileset ? Y'a pas besoin de toutes ces lignes.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Aragorn Hors ligne Membre Points: 807 Défis: 5 Message

Citer : Posté le 04/05/2016 14:25 | #


Je sais, mais le sprite coder ne propose que 2 options : 1ligne= 1rangée de pixel ou toute l'image sur une seule ligne.
Or, en copiant le code de toute l'image sur une seule ligne, soit le sdk crash, soit il n'enregistre que le début du code.
Du coup, je dois prendre la 1ère option.
Mes Programmes
Cliquer pour enrouler
The Legend of CASIO - Basic Quest ( Basic )
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Projets
Cliquer pour enrouler
Zelda Ancestral Relics ( projet en C )
Projets que je soutient
Cliquer pour enrouler
Pokémon jade de Dodormeur
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun




Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 04/05/2016 14:39 | #


Ce que je veux dire, c'est que là dans ton code tu peux remplacer pas mal de lignes par un unique …
On s'en fout complet des 150 lignes de sprite, c'est pas ça qui fait bugguer
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Aragorn Hors ligne Membre Points: 807 Défis: 5 Message

Citer : Posté le 04/05/2016 14:52 | #


Je ne connaissais pas cette instruction "...". Je vais me documenter pour voir où je peux l'insérer et si cela optimise mon code.
Mes Programmes
Cliquer pour enrouler
The Legend of CASIO - Basic Quest ( Basic )
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Projets
Cliquer pour enrouler
Zelda Ancestral Relics ( projet en C )
Projets que je soutient
Cliquer pour enrouler
Pokémon jade de Dodormeur
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun




Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 04/05/2016 15:02 | #


C'est pas une instruction, c'est juste pour pas que le spoiler soit énorme ><

Ajouté le 04/05/2016 à 15:05 :
Ex : char sprite[] = {1, 2, 3, …, 253, 254};
Ça n'empêche pas la compréhension du code, mais ça évite de foutre le bordel sur le forum
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Aragorn Hors ligne Membre Points: 807 Défis: 5 Message

Citer : Posté le 04/05/2016 15:07 | #



Ok, je modifie tout de suite.

Ajouté le 04/05/2016 à 15:09 :
That's done !
Mes Programmes
Cliquer pour enrouler
The Legend of CASIO - Basic Quest ( Basic )
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Projets
Cliquer pour enrouler
Zelda Ancestral Relics ( projet en C )
Projets que je soutient
Cliquer pour enrouler
Pokémon jade de Dodormeur
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun




Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 04/05/2016 16:31 | #


Bien mieux. J'ai rajouté la balise code, elle sert à ça
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

Citer : Posté le 04/05/2016 17:14 | #


@Aragorn : Tu n'as rien fait de mauvais , c'est juste que le C-Engine ne gère pas encore 150 tiles, il ne peut supporter que 255 - le code Dec de 0. En effet, c'était pour simplifier l'écriture des maps que j'avais fait cela. Cependant je m' aperçois que le nombre de tiles est devenu trop important et donc qu'il faut que je recode cette partie du C-Engine.

J'aurait aussi besoin du dossier qui contient ton projet car si l'erreur ne vient pas du C-Engine, je vais pouvoir plus facilement t'aider. Ensuite l'erreur que tu as avec ton tileset et sprite coder, c'est un bug de l''editeur de code du SDK, je te conseille d'utiliser un IDE pour écrire ton code.
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 >
Aragorn Hors ligne Membre Points: 807 Défis: 5 Message

Citer : Posté le 04/05/2016 17:19 | #


Merci de ta réponse rapide.

Pour ce qui est du dossier de mon projet, il ne contient que les fichiers habituels d'un projet + Zelda.cpp, qui contient tout mon code (présent dans le spoiler).

Mes Programmes
Cliquer pour enrouler
The Legend of CASIO - Basic Quest ( Basic )
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Projets
Cliquer pour enrouler
Zelda Ancestral Relics ( projet en C )
Projets que je soutient
Cliquer pour enrouler
Pokémon jade de Dodormeur
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun




Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.
Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

Citer : Posté le 04/05/2016 17:20 | #


Oui mais j'ai besoin du tileset et de la map, et ça m'évite de devoir créer un projet avec le SDK pour tester ton code.
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 >
Aragorn Hors ligne Membre Points: 807 Défis: 5 Message

Citer : Posté le 06/05/2016 14:59 | # | Fichier joint


Ok, voici le fichier compressé en pièce jointe.
Mes Programmes
Cliquer pour enrouler
The Legend of CASIO - Basic Quest ( Basic )
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Projets
Cliquer pour enrouler
Zelda Ancestral Relics ( projet en C )
Projets que je soutient
Cliquer pour enrouler
Pokémon jade de Dodormeur
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun




Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.
Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

Citer : Posté le 08/05/2016 09:50 | #


Aragon tu pourrait me donner le tileset et la map Tiled, pour que je puisse faire des tests ?
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 >
Aragorn Hors ligne Membre Points: 807 Défis: 5 Message

Citer : Posté le 08/05/2016 17:04 | # | Fichier joint


Les voilà.

Merci beaucoup pour tout le temps que tu passes à travailler sur le C-engine.
Mes Programmes
Cliquer pour enrouler
The Legend of CASIO - Basic Quest ( Basic )
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Projets
Cliquer pour enrouler
Zelda Ancestral Relics ( projet en C )
Projets que je soutient
Cliquer pour enrouler
Pokémon jade de Dodormeur
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun




Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.
Fife86 Hors ligne Membre Points: 830 Défis: 0 Message

Citer : Posté le 09/05/2016 09:37 | # | Fichier joint


La map est corrigé, l'encodage est différents, il va falloir que je met à jour le tuto.

Le code est en pièce jointe. Par contre il va falloir que tu modifie ton tileprop car il est mal fait ( à moins que ne pas pouvoir traverser les cases blanches est normal), au lieu de mettre true et false, tu peux aussi mettre 1 pour true et 0 pour false.
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 >
Aragorn Hors ligne Membre Points: 807 Défis: 5 Message

Citer : Posté le 09/05/2016 20:03 | #


Merci beaucoup Fife !

Pour ce qui est du tileprop, il est possible que j'ai sauté 1 ou 2 sprites créant ainsi un décalage. Je vais le retravailler.
Mes Programmes
Cliquer pour enrouler
The Legend of CASIO - Basic Quest ( Basic )
Notes ( logiciel qui calcule votre moyenne, basic )
Professeur Layton ( jeu d'énigme en C )
Mario & Sonic Rush ( jeu de course 3D en C )
Projets
Cliquer pour enrouler
Zelda Ancestral Relics ( projet en C )
Projets que je soutient
Cliquer pour enrouler
Pokémon jade de Dodormeur
Jetpack Joyride de Drakalex007
Arcuz de Dark Storm
Casion de Az et Darkysun




Un jeu de course en 3D pour calculatrice :
http://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=2773&page=1.

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 84 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