[Megadrive] Conversion d'Alex kidd in miracle world
+26
Stef
cammalleri
le basque
nohama
Bonaf
lebanni
Nodoka75
betascoop
Nostalgya
pckid
Nico128
Patoulatchi
tbp
turrican
Nikoshiba
Azerty0210
bfg
philip
StaxX
kawickboy
Starfox18
vingazole
PC-kid
ericb59
drfloyd
oofwill
30 participants
Page 5 sur 7
Page 5 sur 7 • 1, 2, 3, 4, 5, 6, 7
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Je ne connaissais PCkid que de nom, mais il a l'air bien sympa!!
Je prendrai peut être quelques idées ^^
Je prendrai peut être quelques idées ^^
oofwill- Patient contaminé
- Nombre de messages : 686
Date d'inscription : 07/01/2010
Re: [Megadrive] Conversion d'Alex kidd in miracle world
c'est moi ou il plonge tête en avant sur les ennemis ?
super boulot oofwill continues
super boulot oofwill continues
cammalleri- Patient incurable
- Nombre de messages : 1825
Age : 33
Localisation : amiens(80)
Date d'inscription : 08/06/2011
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Super,
Sega avec alex kidd, ils auraient pu le faire vivre comme mario, avec des modes 4 joueurs,
faire évoluer le personnage, si nintendo vit avec mario, je ne vois pas pourquoi sega n'y arriverait pas.
Sega avec alex kidd, ils auraient pu le faire vivre comme mario, avec des modes 4 joueurs,
faire évoluer le personnage, si nintendo vit avec mario, je ne vois pas pourquoi sega n'y arriverait pas.
pckid- Infirmier
- Nombre de messages : 3743
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Bon, j'ai des petits problèmes de ralentissement.
Bon, en fait, j'ai de GROS problèmes de ralentissement. Dès qu'il y a 5 ou 6 sprites à l'écran, la consol eest à genoux. Blast processing mon oeil
Blague à part, je pense que mon code est pourri, mais si certains programmeurs chevronnés pouvaient me donner des tuyaux...
Bon, en fait, j'ai de GROS problèmes de ralentissement. Dès qu'il y a 5 ou 6 sprites à l'écran, la consol eest à genoux. Blast processing mon oeil
Blague à part, je pense que mon code est pourri, mais si certains programmeurs chevronnés pouvaient me donner des tuyaux...
oofwill- Patient contaminé
- Nombre de messages : 686
Age : 44
Localisation : Niort (79)
Date d'inscription : 07/01/2010
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Mario peut-être ... ok je sorsoofwill a écrit:Bon, j'ai des petits problèmes de ralentissement.
Bon, en fait, j'ai de GROS problèmes de ralentissement. Dès qu'il y a 5 ou 6 sprites à l'écran, la consol eest à genoux. Blast processing mon oeil
Blague à part, je pense que mon code est pourri, mais si certains programmeurs chevronnés pouvaient me donner des tuyaux...
Invité- Invité
Re: [Megadrive] Conversion d'Alex kidd in miracle world
C'est quoi ton editeur ? pour developper ?
pckid- Infirmier
- Nombre de messages : 3743
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: [Megadrive] Conversion d'Alex kidd in miracle world
SGDK de stef. J'ai utilisé le sprite engine qu'il a inclus il y a quelques temps et je pense que c'est ce qui me cause problème. Je l'utilise peut être mal.
J'avais fait une version il y a quelques mois avec mon propre moteur (mais un truc archaïque et chiant à mettre en place) et j'avais zéro ralentissements...
Du coup je vais essayer de demander à Stef si j'ai fait un truc qui pourrait ralentir le processus. Et sinon je referait le tout à ma sauce mais le problème c'est que j'ai quelques haures à passer pour refaire toute la gestion des sprites...
J'avais fait une version il y a quelques mois avec mon propre moteur (mais un truc archaïque et chiant à mettre en place) et j'avais zéro ralentissements...
Du coup je vais essayer de demander à Stef si j'ai fait un truc qui pourrait ralentir le processus. Et sinon je referait le tout à ma sauce mais le problème c'est que j'ai quelques haures à passer pour refaire toute la gestion des sprites...
dovob a écrit:Mario peut-être ... ok je sorsoofwill a écrit:Bon, j'ai des petits problèmes de ralentissement.
Bon, en fait, j'ai de GROS problèmes de ralentissement. Dès qu'il y a 5 ou 6 sprites à l'écran, la consol eest à genoux. Blast processing mon oeil
Blague à part, je pense que mon code est pourri, mais si certains programmeurs chevronnés pouvaient me donner des tuyaux...
oofwill- Patient contaminé
- Nombre de messages : 686
Age : 44
Localisation : Niort (79)
Date d'inscription : 07/01/2010
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Est ce que tu aurais changer le saut comme tu l'avais dit plus haut ? car il faudrait le laisser comme au debut.
pckid- Infirmier
- Nombre de messages : 3743
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: [Megadrive] Conversion d'Alex kidd in miracle world
De quoi parles tu?
Je n'ai rien changé sur le saut récemment.
Je n'ai rien changé sur le saut récemment.
oofwill- Patient contaminé
- Nombre de messages : 686
Age : 44
Localisation : Niort (79)
Date d'inscription : 07/01/2010
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Bon, je pense avoir saisi.
Quand je veux changer ou faire apparaitre des sprites, je les initialise.
Je pense que je devrais plutôt les initialiser une fois pour toutes et ne changer que les attributs en cours de jeu.
Je vais tenter de modifier cela ce soir ^^
Quand je veux changer ou faire apparaitre des sprites, je les initialise.
Je pense que je devrais plutôt les initialiser une fois pour toutes et ne changer que les attributs en cours de jeu.
Je vais tenter de modifier cela ce soir ^^
oofwill- Patient contaminé
- Nombre de messages : 686
Age : 44
Localisation : Niort (79)
Date d'inscription : 07/01/2010
Re: [Megadrive] Conversion d'Alex kidd in miracle world
J'utilise aussi sgdk, avec la vieille méthode bas niveau pour les sprites, et la nouvelle pour les tiles des deux scrolls.
Si tu utilise beaucoup de boucle for ou while, le 68000 risque de patiner. De plus le 68000 de la MD est sous cadencé avec ses 7,67 MHz, beaucoup de jeux subissent des ralentissements avec beaucoup de sprites à l'écran.
Si tu utilise beaucoup de boucle for ou while, le 68000 risque de patiner. De plus le 68000 de la MD est sous cadencé avec ses 7,67 MHz, beaucoup de jeux subissent des ralentissements avec beaucoup de sprites à l'écran.
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Je vais reprendre ma vieille méthode aussi. Le sprite engine n'est pas encore très optimisé d'après ce que dit Stef.
Et mon code l'est encore moins lol
Par contre, j'utilise quelques boucles for() oui, mais comment puis-je faire autrement?
Et mon code l'est encore moins lol
Par contre, j'utilise quelques boucles for() oui, mais comment puis-je faire autrement?
oofwill- Patient contaminé
- Nombre de messages : 686
Age : 44
Localisation : Niort (79)
Date d'inscription : 07/01/2010
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Mince je suis pas encore à votre niveau les gars, cela me fait peur,
Vous parlez bien de tiles et de la map ou uniquement les sprites ?
car si c'est uniquement l'affichage des sprites, quelle fonction est touchée par un ralentissement ?
Vous parlez bien de tiles et de la map ou uniquement les sprites ?
car si c'est uniquement l'affichage des sprites, quelle fonction est touchée par un ralentissement ?
pckid- Infirmier
- Nombre de messages : 3743
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: [Megadrive] Conversion d'Alex kidd in miracle world
En fait, le sprite engine peut visiblement gérer les sprites, bientot les maps, et les images fixes.
Pour les images fixes, ce peut être intéressant puisque cela ne demande pas beaucoup de ressources, donc tu peux t'y tester les yeux fermés.
Pour les sprites, ça dépend du nombre, un jeu tout simple peut tourner largement avec je pense.
Mais le mieux est de développer son propre moteur graphique à mon avis.
C'est pas hyper compliqué au fond ^^
De mon coté c'est la gestion des sprites qui me fait ralentir, mais je pense que c'est aussi parce que mon code est loin d'être optimisé.
Pour les images fixes, ce peut être intéressant puisque cela ne demande pas beaucoup de ressources, donc tu peux t'y tester les yeux fermés.
Pour les sprites, ça dépend du nombre, un jeu tout simple peut tourner largement avec je pense.
Mais le mieux est de développer son propre moteur graphique à mon avis.
C'est pas hyper compliqué au fond ^^
De mon coté c'est la gestion des sprites qui me fait ralentir, mais je pense que c'est aussi parce que mon code est loin d'être optimisé.
oofwill- Patient contaminé
- Nombre de messages : 686
Age : 44
Localisation : Niort (79)
Date d'inscription : 07/01/2010
Re: [Megadrive] Conversion d'Alex kidd in miracle world
J'utilise des listes chaînées, pour tester le comportement de plusieurs objets, je ne vois pas d'autres solutions que les boucles. Pour éviter les ralentissements, pour moi la solution est hardware, avec dans la cartouche de jeu un 68000 à 15,34mhz..
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Désolé si ma question parait stupide, mais c'est quoi une liste chaînée?
Ca se présente comment?
Ca se présente comment?
oofwill- Patient contaminé
- Nombre de messages : 686
Age : 44
Localisation : Niort (79)
Date d'inscription : 07/01/2010
Re: [Megadrive] Conversion d'Alex kidd in miracle world
A placer le code ci-dessous avant int main()oofwill a écrit:Désolé si ma question parait stupide, mais c'est quoi une liste chaînée?
Ca se présente comment?
#define MAXBADGUY 8 // 8 sprites pour les ennemis du jeu.
typedef struct
{
u16 bgid; // id comme identité
u16 bget; // et comme étape
s16 bgx;
s16 bgy;
u16 bghauteur;
u16 bglargeur;
u16 bganim;
u16 bgaie;
u16 bgtempo1;
u16 bgtempo2;
u16 bgtempo3;
} badguy_;
badguy_ badguys[MAXBADGUY];
Après int main( ) tu met la variable qui fera offfice de compteur :
u16 compta;
Et après dans la boucle principale :
for(compta=0; compta < MAXBADGUY; compta++) // 0 à 7
{
if (badguys[compta].bgid == 1) // identité ennemi numéro 1
{
if (badguys[compta].bget == 0) // état 0, initialisation : on place son objet à l'écran
{
badguys[compta].bget = 1;
badguys[compta].bgx = 10;
badguys[compta].bgy = 10;
}
if (badguys[compta].bget == 1) // action !
{
badguys[compta].bgx += 1;
}
}
}
Et enfin tu récupère les variables bgx et bgy pour tes sprites :
monspritebg1.posx=badguys[0].bgx;monspritebg1.posy=badguys[0].bgy;VDP_setSpriteP(20, &monspritebg1);
monspritebg2.posx=badguys[1].bgx;monspritebg2.posy=badguys[1].bgy;VDP_setSpriteP(21, &monspritebg2);
monspritebg3.posx=badguys[2].bgx;monspritebg3.posy=badguys[2].bgy;VDP_setSpriteP(22, &monspritebg3);
monspritebg4.posx=badguys[3].bgx;monspritebg4.posy=badguys[3].bgy;VDP_setSpriteP(23, &monspritebg4);
monspritebg5.posx=badguys[4].bgx;monspritebg5.posy=badguys[4].bgy;VDP_setSpriteP(24, &monspritebg5);
monspritebg6.posx=badguys[5].bgx;monspritebg6.posy=badguys[5].bgy;VDP_setSpriteP(25, &monspritebg6);
monspritebg7.posx=badguys[6].bgx;monspritebg7.posy=badguys[6].bgy;VDP_setSpriteP(26, &monspritebg7);
monspritebg8.posx=badguys[7].bgx;monspritebg8.posy=badguys[7].bgy;VDP_setSpriteP(27, &monspritebg8);
Et voilà, c'est fait.
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Ah ok, bah c'est exactement comme ça que je fais
Mais ça fait une boucle for() dans tous les cas pour la gestion des sprites :)
Mais c'est trop sympa de prendre un peu de temps pour m'expliquer :)
J'ai bossé sur l'écran titre et pas du tout sur les sprites hier. Je vais essayer d'avancer un peu ce weekend
Mais ça fait une boucle for() dans tous les cas pour la gestion des sprites :)
Mais c'est trop sympa de prendre un peu de temps pour m'expliquer :)
J'ai bossé sur l'écran titre et pas du tout sur les sprites hier. Je vais essayer d'avancer un peu ce weekend
oofwill- Patient contaminé
- Nombre de messages : 686
Age : 44
Localisation : Niort (79)
Date d'inscription : 07/01/2010
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Je suis content de trouver un fan d'alex kidd, il va etre venger sur la megadrive,
par ce que Enchanted castle , les sprites et le gameplay sont pas au top du tout !
par ce que Enchanted castle , les sprites et le gameplay sont pas au top du tout !
pckid- Infirmier
- Nombre de messages : 3743
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Avec plaisir, et oui, une boucle for() pour les sprites, et une autre boucle for() pour les tiles d'un scroll (pour les objets du jeu qui sont immobiles), et bon courage pour la gestion des sprites.oofwill a écrit:Ah ok, bah c'est exactement comme ça que je fais
Mais ça fait une boucle for() dans tous les cas pour la gestion des sprites :)
Mais c'est trop sympa de prendre un peu de temps pour m'expliquer :)
J'ai bossé sur l'écran titre et pas du tout sur les sprites hier. Je vais essayer d'avancer un peu ce weekend
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Merci
J'espère fournir la première partie du niveau jouable d'ici la fin de la semaine, faut que je bosse dur ^^
Je suis en plein dans la gestion des sprites justement. Question:
Vaut-il mieux que j'initialise mon sprite une fois pour toutes et que je change les tiles à la volée pour faire l'animation (utilise moins de mémoire vidéo) ou plutôt que je charge en VRAM chaque étape de l'animation et que j'initialise mon sprite à chaque fois que c'est nécessaire (plus gourmand en VRAM mais plus rapide??)?
à l'origine je faisais du changement de tiles à la volée, mais je ne sais pas si c'est la meilleur méthode...
J'espère fournir la première partie du niveau jouable d'ici la fin de la semaine, faut que je bosse dur ^^
Je suis en plein dans la gestion des sprites justement. Question:
Vaut-il mieux que j'initialise mon sprite une fois pour toutes et que je change les tiles à la volée pour faire l'animation (utilise moins de mémoire vidéo) ou plutôt que je charge en VRAM chaque étape de l'animation et que j'initialise mon sprite à chaque fois que c'est nécessaire (plus gourmand en VRAM mais plus rapide??)?
à l'origine je faisais du changement de tiles à la volée, mais je ne sais pas si c'est la meilleur méthode...
oofwill- Patient contaminé
- Nombre de messages : 686
Age : 44
Localisation : Niort (79)
Date d'inscription : 07/01/2010
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Salut oofwil,
Message d'encouragement pour cette conversion qui est d'excellente facture.
Je rencontre tout comme toi, quelques soucis de ralentissements avec un nombre conséquent de sprite ( > 15 ) mais bon, ça reste jouable .. Et puis on est pas des pros, on fait ce que l'on peut.
Ce qui me rassure, c'est que même en asm, c'est pareil pour les autres ( enfin pas les pros bien sur ! )
Personnellement, j'utilise souvent des tempos pour le traitement de certaine fonction gourmande ( hitbox, etc ... )
Bon, j'utilise BEX qui est très différent de Sgdk, mais le principe reste le même, c'est de la prog. !
Allez courage, on se motive entre homebrewer Français !!
A bientot !
Message d'encouragement pour cette conversion qui est d'excellente facture.
Je rencontre tout comme toi, quelques soucis de ralentissements avec un nombre conséquent de sprite ( > 15 ) mais bon, ça reste jouable .. Et puis on est pas des pros, on fait ce que l'on peut.
Ce qui me rassure, c'est que même en asm, c'est pareil pour les autres ( enfin pas les pros bien sur ! )
Personnellement, j'utilise souvent des tempos pour le traitement de certaine fonction gourmande ( hitbox, etc ... )
Bon, j'utilise BEX qui est très différent de Sgdk, mais le principe reste le même, c'est de la prog. !
Allez courage, on se motive entre homebrewer Français !!
A bientot !
Invité- Invité
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Ce qu'on fait généralement sur Master System (c'est le cas dans Alex Kidd in Miracle World, par exemple^^) c'est un mix des deux : les données graphiques des tiles du joueur sont rechargées à la volée (économie de VRAM permettant d'avoir plus de frames d'animation) alors que les tiles de toutes les frames d'animation des ennemis/autres objets sont chargées une fois pour toutes et on affiche les sprites en sélectionnant les tiles voulues (beaucoup plus rapide, surtout si on a plusieurs instances des mêmes objets présentes à l'écran), sans quoi on arrive assez rapidement à dépasser le VBlank, d'où des glitches graphiques et/ou la chute du framerate.oofwill a écrit:Je suis en plein dans la gestion des sprites justement. Question:
Vaut-il mieux que j'initialise mon sprite une fois pour toutes et que je change les tiles à la volée pour faire l'animation (utilise moins de mémoire vidéo) ou plutôt que je charge en VRAM chaque étape de l'animation et que j'initialise mon sprite à chaque fois que c'est nécessaire (plus gourmand en VRAM mais plus rapide??)?
à l'origine je faisais du changement de tiles à la volée, mais je ne sais pas si c'est la meilleur méthode...
Maintenant est-ce que c'est pertinent sur Megadrive, je ne sais pas
vingazole- Infirmier
- Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 05/01/2012
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Merci Vetea!
Clair que ça fait plaisir de voir des projets sur MD, ça motive en fait.
Tu avances super vite, j'avoue que je n'avance pas aussi vite (mais j'ai pas trop le temps en ce moment je l'avoue...)
Je ne connais pas du tout BEX, je programmais en basic sur ma calculatrice à l'époque ^^
Mais il a l'air assez bien fichu, quand je vois le résultat sur Papi commando!!
Vingazole: merci pour tes conseils!
En fait, j'ai commencé ce soir à récrire toute la gestion, et c'est chiant quand tu as déjà mis pas mal de choses en place!
Mais bon, voilà ou j'en suis: j'ai géré le sprite Alex de la façon suivante, je charge toutes les anims en VRAM, puis je choisis en fonction du besoin la frame qui va bien.
Je pense faire pareil pour les ennemis. Je ne vais pas économiser de VRAM; mais graphiquement le jeu est simple, les décors sont répétitifs et les animations simples également. Je pense que ça va convenir comme ça.
Actuellement, j'ai pu réécrire la gestion d'Alex uniquement. Il court, saute, donne un coup de poing, et meurt. me reste à animer les blocs qui sont détruits, l'onde de choc si Alex est équipé et les ennemis.
ça devrait aller assez vite maintenant. J'avoue que j'ai hâte parce que concrètement, jusqu'à maintenant, je n'ai jamais finalisé un niveau jouable à 100%, j'aimerais au moins faire ça dans la semaine :)
Clair que ça fait plaisir de voir des projets sur MD, ça motive en fait.
Tu avances super vite, j'avoue que je n'avance pas aussi vite (mais j'ai pas trop le temps en ce moment je l'avoue...)
Je ne connais pas du tout BEX, je programmais en basic sur ma calculatrice à l'époque ^^
Mais il a l'air assez bien fichu, quand je vois le résultat sur Papi commando!!
Vingazole: merci pour tes conseils!
En fait, j'ai commencé ce soir à récrire toute la gestion, et c'est chiant quand tu as déjà mis pas mal de choses en place!
Mais bon, voilà ou j'en suis: j'ai géré le sprite Alex de la façon suivante, je charge toutes les anims en VRAM, puis je choisis en fonction du besoin la frame qui va bien.
Je pense faire pareil pour les ennemis. Je ne vais pas économiser de VRAM; mais graphiquement le jeu est simple, les décors sont répétitifs et les animations simples également. Je pense que ça va convenir comme ça.
Actuellement, j'ai pu réécrire la gestion d'Alex uniquement. Il court, saute, donne un coup de poing, et meurt. me reste à animer les blocs qui sont détruits, l'onde de choc si Alex est équipé et les ennemis.
ça devrait aller assez vite maintenant. J'avoue que j'ai hâte parce que concrètement, jusqu'à maintenant, je n'ai jamais finalisé un niveau jouable à 100%, j'aimerais au moins faire ça dans la semaine :)
oofwill- Patient contaminé
- Nombre de messages : 686
Age : 44
Localisation : Niort (79)
Date d'inscription : 07/01/2010
Re: [Megadrive] Conversion d'Alex kidd in miracle world
OK
La gestion des sprites à été entièrement réécrite!
Pour le moment pas de collision, mais les ennemis apparaissent correctement, sont animés, se déplacent en tenant compte du décor et surtout, SURTOUT, sans ralentissement!!
J'ai corrigé pas mal de bugs et autres glitchs par la même occasion.
Le jeu présente maintenant un écran titre. Il n'est pas définitif car il manque Alex dessus, mais ça donne déjà une bonne idée du rendu!
Comme on peut le voir sur la page juste après l'écran titre, il sera possible de reprendre la partie sauvegardée. Je compte mettre en place un système de checkpoint avec save automatique à chaque fin de niveau. On pourra ainsi reprendre sa partie un peu plus tard (souvenez vous des parties commencées le matin en attendant le bus et qu'on n'avait pas le temps de finir )
Bref, je suis plutôt content de l'avancée de ce soir:
PS: passez en 480P, vous aurez le rendu normal, parce que franchement, la conversion Youtube en 360P est dégueulasse...
La gestion des sprites à été entièrement réécrite!
Pour le moment pas de collision, mais les ennemis apparaissent correctement, sont animés, se déplacent en tenant compte du décor et surtout, SURTOUT, sans ralentissement!!
J'ai corrigé pas mal de bugs et autres glitchs par la même occasion.
Le jeu présente maintenant un écran titre. Il n'est pas définitif car il manque Alex dessus, mais ça donne déjà une bonne idée du rendu!
Comme on peut le voir sur la page juste après l'écran titre, il sera possible de reprendre la partie sauvegardée. Je compte mettre en place un système de checkpoint avec save automatique à chaque fin de niveau. On pourra ainsi reprendre sa partie un peu plus tard (souvenez vous des parties commencées le matin en attendant le bus et qu'on n'avait pas le temps de finir )
Bref, je suis plutôt content de l'avancée de ce soir:
PS: passez en 480P, vous aurez le rendu normal, parce que franchement, la conversion Youtube en 360P est dégueulasse...
oofwill- Patient contaminé
- Nombre de messages : 686
Age : 44
Localisation : Niort (79)
Date d'inscription : 07/01/2010
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Je ne pense pas que les transferts des images en ROM vers la vram provoque des ralentissements. Bfg utilise aussi la méthode bas niveau pour les sprites,
struct genresSprites
CODE:
};
Son message avec le code, là :
https://www.gamopat-forum.com/t75587-sgdk-sega-megadrive-sprite#1946991
struct genresSprites
CODE:
- Code:
struct genresSprites
{
u16 *pal; //pointer to pal data
u32 **sprites; //pointer to sprites data
u16 count; //nb sprites
u16 width; //width of each sprite in pixels (not tiles!)
u16 height; //height of each sprite in pixels (not tiles!)
u16 size; //since we use width/height in pixel, useful info on sprite size
//TODO : size is not SGDK compliant, you need to use size>>8
// will be fixed in coming release
};
Son message avec le code, là :
https://www.gamopat-forum.com/t75587-sgdk-sega-megadrive-sprite#1946991
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Pour la gestion des sprites, je recommande de passer par le nouveau "sprite engine" et donc les nouvelles méthodes SPR_xx.
En regardant le source du sample "sprite" on peut voir comment utiliser les fonctions du sprite engine :
https://github.com/Stephane-D/SGDK/blob/master/sample/sprite/src/main.c
Le truc pratique c'est qu'il suffit de donner une image de type "sprite sheet" ou chaque case correspondant à une frame, chaque ligne une animation particulière.
Dans le cas du sample "sprite" le sprite sheet est le suivant :
https://github.com/Stephane-D/SGDK/blob/master/sample/sprite/res/sonic.png
Ensuite on déclare la ressource sprite dans le ficher .res :
https://github.com/Stephane-D/SGDK/blob/master/sample/sprite/res/gfx.res
Pour comprendre les paramètres des différents type de ressources vous pouvez lire le fichier rescomp.txt :
https://github.com/Stephane-D/SGDK/blob/master/bin/rescomp.txt
Ensuite à partir de ce fichier .res rescomp va générer les structures de données automatiquement :)
En regardant le source du sample "sprite" on peut voir comment utiliser les fonctions du sprite engine :
https://github.com/Stephane-D/SGDK/blob/master/sample/sprite/src/main.c
Le truc pratique c'est qu'il suffit de donner une image de type "sprite sheet" ou chaque case correspondant à une frame, chaque ligne une animation particulière.
Dans le cas du sample "sprite" le sprite sheet est le suivant :
https://github.com/Stephane-D/SGDK/blob/master/sample/sprite/res/sonic.png
Ensuite on déclare la ressource sprite dans le ficher .res :
https://github.com/Stephane-D/SGDK/blob/master/sample/sprite/res/gfx.res
Pour comprendre les paramètres des différents type de ressources vous pouvez lire le fichier rescomp.txt :
https://github.com/Stephane-D/SGDK/blob/master/bin/rescomp.txt
Ensuite à partir de ce fichier .res rescomp va générer les structures de données automatiquement :)
Stef- Interne
- Nombre de messages : 5082
Age : 44
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: [Megadrive] Conversion d'Alex kidd in miracle world
J'ai trouvé cette méthode vraiment enfantine à utiliser, mais avec le recul, je crois que je préfère gérer moi-même les sprites.
On verra ce que ça donne, pour l'instant ça me plait donc tant que ce n'est pas une contrainte, je fonce ^^
On verra ce que ça donne, pour l'instant ça me plait donc tant que ce n'est pas une contrainte, je fonce ^^
oofwill- Patient contaminé
- Nombre de messages : 686
Age : 44
Localisation : Niort (79)
Date d'inscription : 07/01/2010
Re: [Megadrive] Conversion d'Alex kidd in miracle world
C'est qu'il à l'air motivé en ce moment ^^
Voilà les news du soir:
- Quand Alex meurt, il réapparait clignotant, c'est à dire invincible pendant quelques secondes.
- Les ennemis peuvent à présent nous tuer.
- Et heureusement Alex peut lui aussi les tuer (avec une petite animation qui va bien ^^)
J'ai corrigé également quelques bugs, mine de rien, ça prend un peu de temps de déboguer un jeu sérieux
Voilà les news du soir:
- Quand Alex meurt, il réapparait clignotant, c'est à dire invincible pendant quelques secondes.
- Les ennemis peuvent à présent nous tuer.
- Et heureusement Alex peut lui aussi les tuer (avec une petite animation qui va bien ^^)
J'ai corrigé également quelques bugs, mine de rien, ça prend un peu de temps de déboguer un jeu sérieux
oofwill- Patient contaminé
- Nombre de messages : 686
Age : 44
Localisation : Niort (79)
Date d'inscription : 07/01/2010
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Je ne comprend pas un truc sur la déclaration :Stef a écrit:Ensuite on déclare la ressource sprite dans le ficher .res :
https://github.com/Stephane-D/SGDK/blob/master/sample/sprite/res/gfx.res
SPRITE sonic_sprite "sonic.png" 6 6 -1 5
Donc 6 images en largeur, là je comprend, mais 6 de haut ? Car sur l'image je compte 8 images de haut :
Donc il faudrait plutôt déclarer comme cela : SPRITE sonic_sprite "sonic.png" 6 8 -1 5
J'ai donc besoin d'un éclairage.
Re: [Megadrive] Conversion d'Alex kidd in miracle world
Tu as testé sur la console réelle, les ralentissements ont disparu ?oofwill a écrit:C'est qu'il à l'air motivé en ce moment ^^
Voilà les news du soir:
- Quand Alex meurt, il réapparait clignotant, c'est à dire invincible pendant quelques secondes.
- Les ennemis peuvent à présent nous tuer.
- Et heureusement Alex peut lui aussi les tuer (avec une petite animation qui va bien ^^)
J'ai corrigé également quelques bugs, mine de rien, ça prend un peu de temps de déboguer un jeu sérieux
Page 5 sur 7 • 1, 2, 3, 4, 5, 6, 7
Sujets similaires
» [EST] Alex Kidd in Miracle World
» [ NES ] Alex Kidd in Miracle World
» [vds] alex kidd in miracle world
» Alex Kidd in Miracle World
» [ACH] Urgent Alex Kidd in Miracle World
» [ NES ] Alex Kidd in Miracle World
» [vds] alex kidd in miracle world
» Alex Kidd in Miracle World
» [ACH] Urgent Alex Kidd in Miracle World
Page 5 sur 7
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum