Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
+32
eckain
drludos
fourchette
upsilandre
Mbx
zouzzz
troudki
StaxX
pckid
Marazizou
tetsuro
Spirale
Ricco59_59
philip
uran
Templeton
jeje92
vincent2105
grostonton
TotOOntHeMooN
widow88
TrAkA
Monos
ichigobankai
Stef
Tryphon
F.L
Baboulinet
iwillbeback
drfloyd
erikrom2
ShiningBZH
36 participants
Page 1 sur 24
Page 1 sur 24 • 1, 2, 3 ... 12 ... 24
Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Demo officielle Disponible !!
Rendez vous sur la page Itch.io :
https://vetea.itch.io/papi-commando-reload-free-demo-tectoy
Merci !
==========================================================
C'est Noël avec Tectoy et Le Studio Vetea !!!
Profitez de la dernière démo Tectoy avec cet article qui vient de paraitre sur le Blog officiel de Tectoy !
http://blogtectoy.com.br/chegadevidasocial-para-fechar-bem-o-ano-a-tectoy-conseguiu-um-conteudo-exclusivo-para-os-fas-do-mega-drive/
Bon jeu à tous et excellentes fêtes !
==========================================================================
Scenario du jeu :
===========================================================================
Bonsoir à tous,
Je cachais le projet depuis quelques temps, mais maintenant que j'ai quelque chose de "propre" à vous présente, je me lance !!
Voici donc mon nouveau projet phare, Papi Commando Reload !!
Je précise qu'il ne s'agit aucunement d'une suite officielle.
En fait, c'est une version "HD", avec tout ce que je n'avais pas pu faire sur la première version réalisée avec BEX et éditée par WM.
Le scénario restera le même : Papi devra récupérer son Commostrad volé par les vils CePlusPlus !
Toujours les même qui volent .. Bande de jaloux !!
Il y aura toujours une succession de "Zone" à découvrir et débloquer pour pouvoir aller aux suivantes.
A quelques détails près cependant ...
Les zones seront beaucoup plus grandes et variées !!
De même que les graphismes plus colorés, des décors plus variés également, plus dans l'esprit "16 bits", proche de la version PC ( voire identique .. Je me suis lâché ! )
Faut pas emmerder Papi quand il code !! Pas vrai Maman ?
Il y aura différents objectifs pour passer les différentes zones ...
De plus, les zones seront verrouillées, ce qui veut dire qu'à chaque succès, vous aurez un mot de passe qui vous permettra de sauver votre progression ( Et ça m'épargne les sauvegardes sur EEPROM ! )
Sans compter nos amis Zombis qui devraient être de la partie ( et d'autres surprises !! )
Par contre, je ne pense pas créer de zones "Bonus" .. Ces spécificités seront intégrés dans les Zones normales selon la nature/type de terrain !
Ma Nomad l'a déjà adopté !
L'avantage aussi, c'est que je travaille aussi avec AlekMaul & Grostonton sur le portage de Papi Commando sur SNES.
Nous travaillerons donc en parallèle via cette nouvelle version.
Sauf que sur SNES, les graphismes seront à la charge de Grostonton, le code AlekMaul et moi qui dirige la joyeuse équipe !
Ces deux versions devront être identiques, à quelques exceptions prêt, puisque la taille sera réduite ( 16x24 px pour les sprites et 16x16 les décors ), et sans doute des petits trucs qu'Alek gérera selon les caprices de sa SNES chérie !
Maintenant, place à la vidéo de démonstration !
Testé sur l'excellent émulateur Exodus !
Sur cette vidéo beaucoup de travail a déjà été effectué :
- une carte de 2048x320 pixel ( la largeur sera fixe, comme le jeu original ).
- Des graphismes améliorés en cours de réalisation ( Sprite & Tile de jeu )
- Code optimisé grâce à la nouvelle version 1.3 du Sgdk.
- Moteur de Tilemapping.
- Gestion IA basique.
- Scrolling des deux Plan A & B.
- etc ...
Il y a encore beaucoup à faire comme la gestion collision Décor/Sprite, mais j'ai déjà intégré les principales données à gérer, reste plus qu'à coder et "pointer" tout ça !
Mais je pourrais créer des cartes vraiment immense pour cet opus ...
Bref, tous les voyants sont au vert pour un magnifique projet que bon nombre de joueurs attendent partout dans le monde ( et oui ... ) !
A bientôt et merci de votre fidélité !
Vetea
Dernière édition par Vetea le Mar 5 Juin 2018 - 23:25, édité 8 fois
Invité- Invité
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
First ! Je KIFFE MA RACE ! La Map fait nettement moins vide et le design est au top !
Sur Facebook tu avais pas dit que tu ferais le reload avec BEX non ? Enfin là c'est super fluide ça promet que du bon pour la suite !
Sur Facebook tu avais pas dit que tu ferais le reload avec BEX non ? Enfin là c'est super fluide ça promet que du bon pour la suite !
ShiningBZH- Infirmier
- Nombre de messages : 3270
Age : 53
Localisation : Ploubazlanec
Date d'inscription : 03/01/2015
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Merci copain !!!
Bex c'est du passé ... Vive le progrès avec Sgdk !! :d
La je vais pouvoir lacher les chevaux, et faire aussi bien que la version PC alors que l'on est que sur une MD.
Je kiffe ma démo sur Nomad, c'est dire !
Bex c'est du passé ... Vive le progrès avec Sgdk !! :d
La je vais pouvoir lacher les chevaux, et faire aussi bien que la version PC alors que l'on est que sur une MD.
Je kiffe ma démo sur Nomad, c'est dire !
Invité- Invité
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
félicitation pour le projet c'est cool
comment est perçu ton papi premier , a travers le monde ? quel retour des blogueurs joueur tu as ?
japon usa ?
comment est perçu ton papi premier , a travers le monde ? quel retour des blogueurs joueur tu as ?
japon usa ?
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Ca c'est un boulot d'équipe, on voit déjà que ta nouvelle version a fait un bon en avant, graphiquement c'est déjà bien plus détaillé .
La priorité avec les arbres, tu l'as faite avec le plan A ou des sprites ??
La priorité avec les arbres, tu l'as faite avec le plan A ou des sprites ??
Invité- Invité
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Merciiiii !
@erikrom : les retours sont très bons. Les joueurs apprécient surtout le mode 2P bien fun et le côté décalé du jeu mais déplore son manque de contenu.
Le jeu continue a se vendre et les DL n'arrêtent jamais sur itch.io ! Preuve du succès.
@Touko : j'utilise le plan A pour les objets en hauteur. La gestion Yorder est en mode automatique.
Concrètement je peux réaliser des map de grande taille et plus variée.
Pour ce projet je suis seul, c'est SNES qu'on fait equipe mais malgré tout, je suis moins seul car avec Alek on partage nos progrès.
Et Grostonton est ultra motivé !
La seule partie difficile seront les musiques en FM, finies les ziques PCM du 1er ( bien réalisées selon moi ). Je m'en occuperai a la fin.
@erikrom : les retours sont très bons. Les joueurs apprécient surtout le mode 2P bien fun et le côté décalé du jeu mais déplore son manque de contenu.
Le jeu continue a se vendre et les DL n'arrêtent jamais sur itch.io ! Preuve du succès.
@Touko : j'utilise le plan A pour les objets en hauteur. La gestion Yorder est en mode automatique.
Concrètement je peux réaliser des map de grande taille et plus variée.
Pour ce projet je suis seul, c'est SNES qu'on fait equipe mais malgré tout, je suis moins seul car avec Alek on partage nos progrès.
Et Grostonton est ultra motivé !
La seule partie difficile seront les musiques en FM, finies les ziques PCM du 1er ( bien réalisées selon moi ). Je m'en occuperai a la fin.
Invité- Invité
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Ca c'est cool, c'est bien de voir vos avancées en quasi liveon partage nos progrès.
Ca j'en suis sur,il est à fond et plein de bonnes idées .Et Grostonton est ultra motivé !
Je trouve que ce sera bcp mieux, j'étais pas fan des musiques pcm du 1er, pas qu'elles étaient mauvaises, mais je trouvais qu'il y avait bien trop de distorsion, là au moins avec le FM ce sera bien plus propre,il faut juste garder le PCM pour les bruitages .La seule partie difficile seront les musiques en FM, finies les ziques PCM du 1er
Invité- Invité
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Genial ! J'en parlerai sur le blog.
Pourquoi RELOAD et non RELOADED ?
Pourquoi RELOAD et non RELOADED ?
_______________________________________________________
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Parce que je suis une quiche en anglais !
Merci pour le futur article !
Merci pour le futur article !
Invité- Invité
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
lol, super projet, bravo !. Donc la version SNES que l'on va faire sera plus dans l'esprit de celui là si je comprends bien ?
Invité- Invité
iwillbeback- Interne
- Nombre de messages : 10350
Age : 98
Localisation : ||lll|||llll|llll||||
Date d'inscription : 19/11/2006
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
J'ai pratiquement terminé la gestion Hitbox/Sprite.
J'y ai passé une partie de l'après midi ...
Mais ça ne coute rien en cycle, tout reste parfaitement fluide.
J'ai encore à régler quelques trucs, mais une fois cette partie terminée, ça sera vraiment un sale truc de passé !
A bientôt et merci Docounet pour l'article et à tous pour vos messages !!
J'y ai passé une partie de l'après midi ...
Mais ça ne coute rien en cycle, tout reste parfaitement fluide.
J'ai encore à régler quelques trucs, mais une fois cette partie terminée, ça sera vraiment un sale truc de passé !
A bientôt et merci Docounet pour l'article et à tous pour vos messages !!
Invité- Invité
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Ikari Warriors n'a cas bien se tenir !
ShiningBZH- Infirmier
- Nombre de messages : 3270
Age : 53
Localisation : Ploubazlanec
Date d'inscription : 03/01/2015
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Bravo!!! =D Ca donne bien envie tout ça, bon courage pour la suite et tiens-nous au courant!
Baboulinet- Patient contaminé
- Nombre de messages : 434
Age : 32
Localisation : Rhône Alpes - PACA
Date d'inscription : 14/11/2016
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Coucou et merci pour vos messages.
Je rame depuis Dimanche sur le moteur de jeu ... J'ai la tête en vrac et je ne comprend plus RienGGG !!
Putain c'est chaud de pas être un vrai codeur parfois ... surtout après Dimanche.
Je rame depuis Dimanche sur le moteur de jeu ... J'ai la tête en vrac et je ne comprend plus RienGGG !!
Putain c'est chaud de pas être un vrai codeur parfois ... surtout après Dimanche.
Invité- Invité
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
quand on bloque sur quelque chose on devient totalement fou, on est obsédé, on y pense la nuit.... c'est ça la vie d'un programmeur
Courage
Courage
_______________________________________________________
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Ahah !! Merci Doc' !
Ah ça, ça fait presque 30 ans que je connais ça !
Et par contre, jamais essayer de comprendre du code au boulot quand il y fait 35° sous les vapeurs de plastiques ABS des machines à injection ...
Ah ça, ça fait presque 30 ans que je connais ça !
Et par contre, jamais essayer de comprendre du code au boulot quand il y fait 35° sous les vapeurs de plastiques ABS des machines à injection ...
Invité- Invité
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
avec ce papi reloaded en cours, ça veut dire que tu mets en pause le projet papi tennis ?
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Oui tout à fait, le code source de Papi Tennis est totalement à chier du point de vue C.
Y a tout à refaire ... Et là, j'ai pas vraiment envie !
J'essais de faire un code propre en C avec ce nouveau projet, c'est pas encore gagné ...
A ce propos, je met en copier coller l'un des nombreux conseils de Stef quant à la manière de gérer du "Tilemapping", car j'ai rien compris à sa méthode.
Si on veut bien m'expliquer avec du code simple comment ça se passe ... Parce que là, je bloque totalement !
J'ai ma manière de faire, la mode manouche, mais elle est euh ... ben mode manouche quoi !
Bon bref, on s'en fout ..
Je met le copier coller, et sans doute que ça pourra éclairer d'autres personnes que moi !
========================================================
Pourquoi tu n'utilises pas tout simplement une position absolue pour Papi et le reste ?
En gros tu as une position absolue pour chaque sprite dans ta map de 320x1280, c'est le plus simple :)
Après pour définir la position de ta vue courante, tu peux avoir une position de "caméra", par exemple si tu considères le coin en haut à gauche comme la position [0,0] (x=0 , y=0) alors en plaçant la caméra en [0,0] tu vois la map de [0,0]-[320x224]
Pour rafraichir la map, tu regardes la position X,Y de la caméra et tu "roules" sur le tilemap de 512x512 (64x64 tiles) :
tilemapX = cameraX & (512-1);
tilemapY = cameraY & (512-1);
Bon dans ton cas seule la position Y compte (tu changes jamais le X qui reste à 0).
Après avec cette position tilemapY tu rafraichis toujours la première ligne du tilemap [0, tilemapY / 8] si papi va vers le haut ou la dernière ligne si papi [0, (tilemapY + 223) / 8] va vers le bas avec la bonne donnée de la map (soit [0, cameraY / 8] ou [0, (cameraY + 223) / 8]).
Pour les sprites :
positionEcranX = positionAbsolueX - cameraX;
positionEcranY = positionAbsolueY - cameraY;
Une bête soustraction, ce n'est pas très lourd même si tu dois le faire à chaque mise à jour de la position d'un sprite à l'écran :)
Du coup les collisions sont super simple à gérer :
- tu considères qu'un sprite est une boite (rectangle) dont la position est la position du sprite et la taille plus ou moins la taille du sprite (ça c'est à toi de le définir selon comment tu veux que la collision soit gérée). dont le centre est sa position
- idem pour les élements du décor, ça peut juste être une boite de 32x32 avec sa position sur la map.
Et là tu regardes juste la partie Axis aligned bounding box :
https://developer.mozilla.org/kab/docs/Games/Techniques/2D_collision_detection
==================================================================
Euh bah voila quoi !
Concrétement, je sais faire, ça fait un paquet de jeu que j'utilise mes techniques, mais celle là qui est apparemment la plus classique, ben j'y capte rienG.
tilemapX = cameraX & (512-1); ?!
Euh bon ... J'arrête, ça m'énerve.
Ensuite, comment déclarer un pointeur dans une fonction ?!
Car moi, j'utilise souvent des variables classiques genre i,j, etc ... des index quoi.
Mais comment déclarer par exemple :
typedef struct
{
Sprite* SpriteA;
u8 Block;
/
fix32 VitesseSprintD;
fix32 VitesseInit;
fix32 VitesseSprint;
} Sprite1_;
Sprite1_ Sprites[40];
Donc, Sprite1_ Sprites[40];
Je sais pointer cette structure : Sprite1_ *spr;
Par contre, le compilateur m'envoie valser quand je veux déclarer ça dans une fonction :
GestionPAD(Sprite1_* spr )
J'ai beau foutre ce "*" a gauche, à droite, sur la Lune, sur Mars, etc ... NIET !
Bref, ça me brise les valseuses.
J'essais de changer mes habitudes de manouche codeur, et bien mon cher FL, c'est dur mon pote de devenir "normal" !
Y a tout à refaire ... Et là, j'ai pas vraiment envie !
J'essais de faire un code propre en C avec ce nouveau projet, c'est pas encore gagné ...
A ce propos, je met en copier coller l'un des nombreux conseils de Stef quant à la manière de gérer du "Tilemapping", car j'ai rien compris à sa méthode.
Si on veut bien m'expliquer avec du code simple comment ça se passe ... Parce que là, je bloque totalement !
J'ai ma manière de faire, la mode manouche, mais elle est euh ... ben mode manouche quoi !
Bon bref, on s'en fout ..
Je met le copier coller, et sans doute que ça pourra éclairer d'autres personnes que moi !
========================================================
Pourquoi tu n'utilises pas tout simplement une position absolue pour Papi et le reste ?
En gros tu as une position absolue pour chaque sprite dans ta map de 320x1280, c'est le plus simple :)
Après pour définir la position de ta vue courante, tu peux avoir une position de "caméra", par exemple si tu considères le coin en haut à gauche comme la position [0,0] (x=0 , y=0) alors en plaçant la caméra en [0,0] tu vois la map de [0,0]-[320x224]
Pour rafraichir la map, tu regardes la position X,Y de la caméra et tu "roules" sur le tilemap de 512x512 (64x64 tiles) :
tilemapX = cameraX & (512-1);
tilemapY = cameraY & (512-1);
Bon dans ton cas seule la position Y compte (tu changes jamais le X qui reste à 0).
Après avec cette position tilemapY tu rafraichis toujours la première ligne du tilemap [0, tilemapY / 8] si papi va vers le haut ou la dernière ligne si papi [0, (tilemapY + 223) / 8] va vers le bas avec la bonne donnée de la map (soit [0, cameraY / 8] ou [0, (cameraY + 223) / 8]).
Pour les sprites :
positionEcranX = positionAbsolueX - cameraX;
positionEcranY = positionAbsolueY - cameraY;
Une bête soustraction, ce n'est pas très lourd même si tu dois le faire à chaque mise à jour de la position d'un sprite à l'écran :)
Du coup les collisions sont super simple à gérer :
- tu considères qu'un sprite est une boite (rectangle) dont la position est la position du sprite et la taille plus ou moins la taille du sprite (ça c'est à toi de le définir selon comment tu veux que la collision soit gérée). dont le centre est sa position
- idem pour les élements du décor, ça peut juste être une boite de 32x32 avec sa position sur la map.
Et là tu regardes juste la partie Axis aligned bounding box :
https://developer.mozilla.org/kab/docs/Games/Techniques/2D_collision_detection
==================================================================
Euh bah voila quoi !
Concrétement, je sais faire, ça fait un paquet de jeu que j'utilise mes techniques, mais celle là qui est apparemment la plus classique, ben j'y capte rienG.
tilemapX = cameraX & (512-1); ?!
Euh bon ... J'arrête, ça m'énerve.
Ensuite, comment déclarer un pointeur dans une fonction ?!
Car moi, j'utilise souvent des variables classiques genre i,j, etc ... des index quoi.
Mais comment déclarer par exemple :
typedef struct
{
Sprite* SpriteA;
u8 Block;
/
fix32 VitesseSprintD;
fix32 VitesseInit;
fix32 VitesseSprint;
} Sprite1_;
Sprite1_ Sprites[40];
Donc, Sprite1_ Sprites[40];
Je sais pointer cette structure : Sprite1_ *spr;
Par contre, le compilateur m'envoie valser quand je veux déclarer ça dans une fonction :
GestionPAD(Sprite1_* spr )
J'ai beau foutre ce "*" a gauche, à droite, sur la Lune, sur Mars, etc ... NIET !
Bref, ça me brise les valseuses.
J'essais de changer mes habitudes de manouche codeur, et bien mon cher FL, c'est dur mon pote de devenir "normal" !
Invité- Invité
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Papy Tennis est selon moi ton meilleur projet, faut pas l'abandonner !!!!!
pour ton probleme de code, je laisse les pro du C te repondre.
pour ton probleme de code, je laisse les pro du C te repondre.
_______________________________________________________
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Je te rassure, j'abandonne rien et surtout Papi tennis ou j'ai passé des centaines d'heures dessus !
Juste que je voulais un peu changer et bosser en // avec la version Snes.
Et puis j'ai tant d'autres chantier sur le feu : Boat & Guns, Rol'an'go, Tabata vs Maria ...
Je voudrais partir sur de bonnes bases en C, question de principe.
Juste que je voulais un peu changer et bosser en // avec la version Snes.
Et puis j'ai tant d'autres chantier sur le feu : Boat & Guns, Rol'an'go, Tabata vs Maria ...
Je voudrais partir sur de bonnes bases en C, question de principe.
Invité- Invité
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
En C, un tableau EST un pointeur, tu n'as pas besoin du Sprite1_* spr;
Tu peux directement appeler GestionPAD(sprites);
Ta définition de GestionPAD est correcte.
Tu peux directement appeler GestionPAD(sprites);
Ta définition de GestionPAD est correcte.
Tryphon- Docteur *
- Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Merci pour la réponde Tryphon.
Toujours rien compris ...
Ca, c'est ma fonction GestionPAD
Dedans, y a un pointeur de structure.
Moi je veux le déclarer dans la déclaration de ma fonction.
GestionPAD(*Pointeur de structure Sprite* ou *spr ou *Maria110D* ... )
Je veux savoir comment déclarer un pointeur au moment de déclarer une fonction !
J'ai beau tourner tout ça à l'endroit, à l'envers, le compilateur n'en veut pas.
Toujours rien compris ...
Ca, c'est ma fonction GestionPAD
- Code:
//////////////////////////
// Gestion PAD //
//////////////////////////
void GestionPAD()
{
Sprite1_ *spr;
spr=&Sprites[0];
if (value==0) spr->Direction=0;
if (value & BUTTON_UP) spr->Direction=8;
if (value & BUTTON_DOWN) spr->Direction=2;
if (value & BUTTON_RIGHT)
{
if (spr->Direction==2) spr->Direction=26;
else if (spr->Direction==8) spr->Direction=86;
else spr->Direction=6;
}
if (value & BUTTON_LEFT)
{
if (spr->Direction==2) spr->Direction=24;
else if (spr->Direction==8) spr->Direction=84;
else spr->Direction=4;
}
if (value!=0) MemDirection=spr->Direction;
}
Dedans, y a un pointeur de structure.
Moi je veux le déclarer dans la déclaration de ma fonction.
GestionPAD(*Pointeur de structure Sprite* ou *spr ou *Maria110D* ... )
Je veux savoir comment déclarer un pointeur au moment de déclarer une fonction !
J'ai beau tourner tout ça à l'endroit, à l'envers, le compilateur n'en veut pas.
Invité- Invité
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
C'est bon, BFG m'a éclairé ma lanterne.
void GestionPAD(Sprite1_ *spr)
{
if (value==0) spr->Direction=0;
if (value & BUTTON_UP) spr->Direction=8;
if (value & BUTTON_DOWN) spr->Direction=2;
if (value & BUTTON_RIGHT)
{
if (spr->Direction==2) spr->Direction=26;
else if (spr->Direction==8) spr->Direction=86;
else spr->Direction=6;
}
if (value & BUTTON_LEFT)
{
if (spr->Direction==2) spr->Direction=24;
else if (spr->Direction==8) spr->Direction=84;
else spr->Direction=4;
}
if (value!=0) MemDirection=spr->Direction;
}
en utilisant comme appel
GestionPad(Sprites);
Ce que tu écrit &Sprites[0] c'est l'adresse du 1er élément de ton tableau, donc c'est égal à Sprites
qui est égal à l'adresse de départ de ton tableau.
Ahh trop content, j'ai encore appris un truc nouveau today !
void GestionPAD(Sprite1_ *spr)
{
if (value==0) spr->Direction=0;
if (value & BUTTON_UP) spr->Direction=8;
if (value & BUTTON_DOWN) spr->Direction=2;
if (value & BUTTON_RIGHT)
{
if (spr->Direction==2) spr->Direction=26;
else if (spr->Direction==8) spr->Direction=86;
else spr->Direction=6;
}
if (value & BUTTON_LEFT)
{
if (spr->Direction==2) spr->Direction=24;
else if (spr->Direction==8) spr->Direction=84;
else spr->Direction=4;
}
if (value!=0) MemDirection=spr->Direction;
}
en utilisant comme appel
GestionPad(Sprites);
Ce que tu écrit &Sprites[0] c'est l'adresse du 1er élément de ton tableau, donc c'est égal à Sprites
qui est égal à l'adresse de départ de ton tableau.
Ahh trop content, j'ai encore appris un truc nouveau today !
Invité- Invité
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Pour tes fonctions en fait tu passais en paramètre l'index du tableau "sprites" avec "i".
Pour gestionPAD() tu en as même pas besoin car en réalité tu gères toujours le déplacement de papi (et pas celui des ennemis ^^), du coup tu peux avoir une variable globale style :
Ainsi tu pourras directement utiliser papiSprite là où tu en as besoin :)
Ensuite pour les fonctions où tu gères vraiment un sprite depuis son index (ennemi ou pas) :
Là tu peux juste remplacer par :
C'est plus efficace et plus clair aussi de faire ainsi :)
Pour gestionPAD() tu en as même pas besoin car en réalité tu gères toujours le déplacement de papi (et pas celui des ennemis ^^), du coup tu peux avoir une variable globale style :
- Code:
papiSprite = &Sprites[0];
Ainsi tu pourras directement utiliser papiSprite là où tu en as besoin :)
Ensuite pour les fonctions où tu gères vraiment un sprite depuis son index (ennemi ou pas) :
- Code:
// appel fonction
gestionIA(i);
...
void gestionIA(u16 i)
{
Sprite* spr = &Sprites[i];
if (spr->x > 0) ...
...
}
Là tu peux juste remplacer par :
- Code:
// appel fonction
gestionIA(&Sprites[i]);
// ou
gestionIA(spr); // si tu as déjà un variable spr qui pointe sur &Sprites[i]
...
void gestionIA(Sprite* spr)
{
if (spr->x > 0) ...
...
}
C'est plus efficace et plus clair aussi de faire ainsi :)
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Ouiiiii Michel vient de m'expliquer aussi !!
Invité- Invité
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
J'aurai une autre question pratique :
Est il plus rapide pour le compilateur de faire ça :
Que de faire :
Merci !!
Est il plus rapide pour le compilateur de faire ça :
- Code:
u8 D=spr->Direction
if (!D) Machin;
if (!D) Machin1;
if (!D) Machin2;
Que de faire :
- Code:
if (!spr->Direction) Machin;
if (!spr->Direction) Machin1;
if (!spr->Direction) Machin2;
Merci !!
Invité- Invité
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
faut regarder le fichier asm généré ...
tu peux aussi faire un switch, si le compilateur est pas naze il doit te faire une jump table.
tu peux aussi faire un switch, si le compilateur est pas naze il doit te faire une jump table.
Re: Papi Commando RELOAD !! *SgdK* - Megadrive - Nouveau Scénario !
Ben on m'a dit que "Switch" c'était pas bien ...
Bon ok ok ... J'arrête mes questions à la con.
Place au projet, je laisse les parties techniques/Noobies en privé.
Bon ok ok ... J'arrête mes questions à la con.
Place au projet, je laisse les parties techniques/Noobies en privé.
Invité- Invité
Page 1 sur 24 • 1, 2, 3 ... 12 ... 24
Sujets similaires
» Le Listing complet de Papi Commando Megadrive - BEX !
» [ Demo Disponible !] - Papi Commando Tennis Megadrive - SGDK
» Papi Commando Remix - Megadrive Edition
» Papi Commando - RAMPAGE ! *Megadrive*
» [ TERMINE ] - Papi Commando Megadrive Edition !
» [ Demo Disponible !] - Papi Commando Tennis Megadrive - SGDK
» Papi Commando Remix - Megadrive Edition
» Papi Commando - RAMPAGE ! *Megadrive*
» [ TERMINE ] - Papi Commando Megadrive Edition !
Page 1 sur 24
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum