Sgdk - Sega Megadrive / Genesis Development Kit
+31
JoanCZ
vincent2105
Fax
Orion_
chrilith
Templeton
F.L
Tryphon
uran
Hpman
fourchette
65c02
drfloyd
chiss
Spirale
maldoror68
Top l'âne
troudki
tetsuro
emultion
Ricco59_59
dub
ganon551
TotOOntHeMooN
philip
ichigobankai
vingazole
bfg
Stef
r_songo
pckid
35 participants
Page 1 sur 34
Page 1 sur 34 • 1, 2, 3 ... 17 ... 34
Sgdk - Sega Megadrive / Genesis Development Kit
Bonjour à tous,
Voilà je lance le Thread SGDK, car on a pollué le post de Michel alias BFG, et c'est pas Gentil.
Donc ce Thread servira à poser toutes les questions sur le Sdk SGDK.
Si vous souhaitez developper sur megadrive grâce au langage C.
Merci à vous.
Voilà je lance le Thread SGDK, car on a pollué le post de Michel alias BFG, et c'est pas Gentil.
Donc ce Thread servira à poser toutes les questions sur le Sdk SGDK.
Si vous souhaitez developper sur megadrive grâce au langage C.
Merci à vous.
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Trés bonne idée ce post.
Ca m'évitera de poluer la boite à MP de Stepf
Ca m'évitera de poluer la boite à MP de Stepf
r_songo- Patient contaminé
- Nombre de messages : 863
Age : 48
Localisation : Nancy
Date d'inscription : 18/11/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Merci pour l'initiative, bonne idée en effet
J'ai du en faire y'a longtemps mais je ne le retrouve plus :p
J'ai du en faire y'a longtemps mais je ne le retrouve plus :p
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Je lance une 1ere question : pour concatener une chaine,
J'ai commencé par faire comme du C avec le + mais j'ai eu une erreur
Quand on a 3 chaines ou plus, la function StrCat est un peu juste,
Est ce le seul moyen de concaténer ?
Sinon je peux faire une sous fonction .
J'ai commencé par faire comme du C avec le + mais j'ai eu une erreur
Quand on a 3 chaines ou plus, la function StrCat est un peu juste,
Est ce le seul moyen de concaténer ?
Sinon je peux faire une sous fonction .
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
pckid a écrit:Je lance une 1ere question : pour concatener une chaine,
J'ai commencé par faire comme du C avec le + mais j'ai eu une erreur
Quand on a 3 chaines ou plus, la function StrCat est un peu juste,
Est ce le seul moyen de concaténer ?
Sinon je peux faire une sous fonction .
Oui c'est possible, et c'est le truc le plus compliqué à faire en C :) :)
Une chaine en C, c'est un tableau de char. Si tu veux encoder TOTO c'est :
machaine char[5];
machaine[0] = 'T';
machaine[1] = 'O';
machaine[2] = 'T';
machaine[3] = 'O;
machaine[4] = '/0'; // Fin de chaine
La signature de strcat c'est : char* strcat(char *dest,const char *src);
src, c'est la chaine que l'on ne va pas toucher, on va l'ajouter à dest. MAIS il faut que dest soit assez grand pour ne pas dépasser ça capacité.
Ex :
source char[5]={'T','O','T','O','/0'};
dest char[9]={'B','o','n','j','o','u','r',' ','/0'};
Si tu fait strcat (dest,src) ça va planter en effet tu va essayer de mettre 'Bonjour TOTO' dans un char[9]. Bref ça va merder chef !
Par contre si tu fait :
source char[5]={'T','O','T','O','/0'};
dest char[14]={'B','o','n','j','o','u','r',' ','/0'};
Ça devrait passer. Le mieux c'est de développer ses propres routines de concaténation avec des contrôles. Perso je pense qu'il vaut mieux faire (a développer) :
char *concat(const char* chaine1,const char* chaine2);
en utilisation :
nouvelleChaine = concat("Bonjour ","Toto");
Cette routine devra calculer la taille de la chaine1 (moins le /0) + la taille de la chaine2 et faire un malloc pour réserver en mémoire la taille calculée.
Ensuite, il faut parcourir caractère par caractère la chaine 1 et recopier dans la zone mémoire allouée, mais sans le /0 terminal, puis faire la même chose avec la chaine 2 avec le /0 terminal. Retourner la zone mémoire allouée.
Grosso merdo, c'est ce qui me vient en tête ...
bfg- Patient contaminé
- Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005
Re: Sgdk - Sega Megadrive / Genesis Development Kit
y'a les fonctions de base dans l'unité string de SGDK :
Mais effectivement il faut allouer la mémoire en amont.
Vu l'espace réduit pour afficher du texte à l'écran, en général un allocation statique type : char str[64];
est bien suffisant dans la plupart des cas
Il y a également des méthodes pour transformer un entier en chaine de caractère (format decimal ou hexa-decimal) :
Ainsi que les valeurs virgules fixes :
Un truc important de savoir à propos de SGDK, y'a une documentation (format doxygen) qui explique le rôle de chaque méthode (je me suis embêté à l'écrire, autant qu'elle serve ^^) !
Vous pouvez la trouver dans le répertoire 'doc' de SGDK, il suffit d'ouvrir le fichier SGDK/doc/html/files.html pour accéder à l'index en quelque sorte, de là vous pouvez naviguer dans les différentes unités et trouver les différentes méthodes disponibles avec leur aidre =)
- Code:
u32 strlen(const char *str);
s16 strcmp(const char *str1, const char *str2);
char* strclr(char *str);
char* strcpy(char *dest, const char *src);
char* strcat(char *dest, const char *src);
Mais effectivement il faut allouer la mémoire en amont.
Vu l'espace réduit pour afficher du texte à l'écran, en général un allocation statique type : char str[64];
est bien suffisant dans la plupart des cas
Il y a également des méthodes pour transformer un entier en chaine de caractère (format decimal ou hexa-decimal) :
- Code:
void intToStr(s32 value, char *str, s16 minsize);
void uintToStr(u32 value, char *str, s16 minsize);
void intToHex(u32 value, char *str, s16 minsize);
Ainsi que les valeurs virgules fixes :
- Code:
void fix32ToStr(fix32 value, char *str, s16 numdec);
void fix16ToStr(fix16 value, char *str, s16 numdec);
Un truc important de savoir à propos de SGDK, y'a une documentation (format doxygen) qui explique le rôle de chaque méthode (je me suis embêté à l'écrire, autant qu'elle serve ^^) !
Vous pouvez la trouver dans le répertoire 'doc' de SGDK, il suffit d'ouvrir le fichier SGDK/doc/html/files.html pour accéder à l'index en quelque sorte, de là vous pouvez naviguer dans les différentes unités et trouver les différentes méthodes disponibles avec leur aidre =)
Dernière édition par Stef le Sam 22 Nov 2014 - 21:20, édité 3 fois
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
@ Bfg : Je comprends ton idée, je ne savais pas que l'on pouvait faire cela avec les tableaux.
J'avais une idée de faire une function
et de faire une boucle sur chaque chaine et dans la boucle je faire 2 strcat afin de concaténer N chaines.
je retourne et je reviens vous voir ! tu as appréhendé le Sgdk michel ca y est ?
J'avais une idée de faire une function
et de faire une boucle sur chaque chaine et dans la boucle je faire 2 strcat afin de concaténer N chaines.
je retourne et je reviens vous voir ! tu as appréhendé le Sgdk michel ca y est ?
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
j'ai l'impression Stef que tu lis dans mon esprit, Je voulais juste afficher cela à mon ecran
quand je bouge le pad.
VDP_drawText("Voici mes coordonnées ! je suis en x : " + nXorder + " y :" + nYorder, 1, 1);
quand je bouge le pad.
VDP_drawText("Voici mes coordonnées ! je suis en x : " + nXorder + " y :" + nYorder, 1, 1);
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
pckid a écrit:j'ai l'impression Stef que tu lis dans mon esprit, Je voulais juste afficher cela à mon ecran
quand je bouge le pad.
VDP_drawText("Voici mes coordonnées ! je suis en x : " + nXorder + " y :" + nYorder, 1, 1);
On a tous voulu faire ça :p
Donc en gros :
- Code:
char str[64];
char strNum[16];
// init à chaine vide
str[0] = 0;
// construction de la chaine
strcat(str, "Voici mes coordonnées ! je suis en x : ");
// ajout valeur
intToStr(nXorder, strNum, 1);
strcat(str, strNum);
// suite chaine
strcat(str, " y : ");
// ajout valeur
intToStr(nYorder, strNum, 1);
strcat(str, strNum);
VDP_drawText(str, 0, 0);
Ca prend beaucoup pus qu'une simple ligne mais actuellement c'est la manière de faire...
Idéalement il faudrait que j'ajoute un "printf" mais c'est beaucoup plus complexe à faire
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Merci ,
Petite question : j'ai une function non static , peut on l'appeller dans le main ?
ou doit on toujours avoir des functions statiques pour faire appel ?
Petite question : j'ai une function non static , peut on l'appeller dans le main ?
ou doit on toujours avoir des functions statiques pour faire appel ?
- Code:
void showScreen() {
VDP_drawText("Voici mes coordonnées ! je suis en x : ", 10, 13);
}
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
??? Tu confonds pas avec le C++ ?
bfg- Patient contaminé
- Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Je suis en C# toute la journée au boulot et javascript aussi, alors j'ai du mal faire du c, et en plus les contraintes ne sont pas les mêmes. Et puis comme je t'ai dit j'adore la prog object. Bon il y a les structure chez stef , donc cela peut se rapprocher un peu.
Mais le c à part l'ecole, je n'ai plus de souvenir.
tu as peut être raison. je regarde comment on peut gerer des functions sans void pour renvoyer de valeurs.
Sur c je me rappellais pas que les types de données etaient comme cela, je me rappellais de Int ou Char
merci à stef pour la doc c'est top !
Mais sinon BFG , je trouve que c'est du pseudo C plutôt proche de l'ASM que d'un veritable C.
Mais le c à part l'ecole, je n'ai plus de souvenir.
tu as peut être raison. je regarde comment on peut gerer des functions sans void pour renvoyer de valeurs.
Sur c je me rappellais pas que les types de données etaient comme cela, je me rappellais de Int ou Char
#define | FALSE 0 |
#define | TRUE 1 |
#define | NULL 0 |
#define | MIN_U8 0x00 |
#define | MAX_U8 0xFF |
#define | MIN_S8 -0x80 |
#define | MAX_S8 0x7F |
#define | MIN_U16 0x0000 |
#define | MAX_U16 0xFFFF |
#define | MIN_S16 -0x8000 |
#define | MAX_S16 0x7FFF |
#define | MIN_U32 0x0000 |
#define | MAX_U32 0xFFFFFFFF |
#define | MIN_S32 -0x80000000 |
#define | MAX_S32 0x7FFFFFFF |
#define | s8 char |
#define | s16 short |
#define | s32 long |
#define | u8 unsigned char |
#define | u16 unsigned short |
#define | u32 unsigned long |
#define | vs8 volatile s8 |
#define | vs16 volatile s16 |
#define | vs32 volatile s32 |
#define | vu8 volatile u8 |
#define | vu16 volatile u16 |
#define | vu32 volatile u32 |
#define | uint8_t u8 |
#define | uint16_t u16 |
#define | uint32_t u32 |
#define | int8_t s8 |
#define | int16_t s16 |
#define | int32_t s32 |
#define | FASTCALL |
merci à stef pour la doc c'est top !
Mais sinon BFG , je trouve que c'est du pseudo C plutôt proche de l'ASM que d'un veritable C.
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
pckid a écrit:Merci ,
Petite question : j'ai une function non static , peut on l'appeller dans le main ?
ou doit on toujours avoir des functions statiques pour faire appel ?
Au contraire une fonction "static" en C reste locale à l'unité, seules les fonctions non statiques sont globales et peuvent être utilisées dans les autres unités. D'où l'intérêt des fichiers .h (qui déclare les méthodes sans les implémenter).
Et le langage C utilisé dans SGDK est le vrai C
Le C++ en est dérivé en apportant la notion objet en plus.
Le C# en reprend la syntaxe mais apporte le managé en plus ce qui en fait un langage de bien plus haut niveau..
Et pour les types, de base en C c'est effectivement :
- Code:
(unsigned) char
(unsigned) short
(unsigned) long
(unsigned) int
Mais j'ai créé des alias (u8, u16 et u32) pour que ça soit plus simple et plus rapide à écrire.
Le type "int" en C est particulier... il prend la taille de l'architecture pour laquelle il a été compilé, disons que c'est le type register "optimal".
Sur MD par exemple il fait 16 bits, sur x86 il fait 32 bits, sur x64 il fait 64 bits...
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
pckid a écrit:Je suis en C# toute la journée au boulot et javascript aussi, alors j'ai du mal faire du c, et en plus les contraintes ne sont pas les mêmes. Et puis comme je t'ai dit j'adore la prog object. Bon il y a les structure chez stef , donc cela peut se rapprocher un peu.
tu as peut être raison. je regarde comment on peut gerer des functions sans void pour renvoyer de valeurs.
Sur c je me rappellais pas que les types de données etaient comme cela, je me rappellais de Int ou Char
[...]
Mais sinon BFG , je trouve que c'est du pseudo C plutôt proche de l'ASM que d'un veritable C.
En fait oui tu as raison mais :
#define s8 char
c'est des "directives" pour le précompilateur qui lui dit :
Chercher toutes les chaines 's8' et remplace les par des 'char'
Pour par exemple
#define s8 char
#define vs8 volatile s8
Le précompilo va faire
cherche 'vs8' remplace par 'volatile s8'
puis il va faire une passe sur
cherche 's8' et remplace par 'char'
Au final si dans ton code tu as :
vs8 toto;
le précompilo va le transformer en mémoire en :
volatile char; qui est un type de base du C.
bfg- Patient contaminé
- Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Merci à vous, la mémoire me revient,
@stef : je peux créer bien mes functions globales dans les .h , mais j'ai fait un test, si je mets la function au dessus du main, elle est aussi visible comme l'include. Puisque le code est procédural.
@bfg : pour les directives pré compilo, je connaissais sauf cette syntaxe la dernière je ne pensais pas que l'on pouvait cumuler, " #define vs8 volatile s8 "
Je ne vois pas tout de suite un besoin pour moi mais si tu en parles, c'est que tu as du faire des choses dans tes jeux.
Merci à vous deux.
@stef : je peux créer bien mes functions globales dans les .h , mais j'ai fait un test, si je mets la function au dessus du main, elle est aussi visible comme l'include. Puisque le code est procédural.
@bfg : pour les directives pré compilo, je connaissais sauf cette syntaxe la dernière je ne pensais pas que l'on pouvait cumuler, " #define vs8 volatile s8 "
Je ne vois pas tout de suite un besoin pour moi mais si tu en parles, c'est que tu as du faire des choses dans tes jeux.
Merci à vous deux.
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Autre chose : L'affichage des Sprites : (je ne sais pas quel methode Bfg a choisi)
Il y a l'exemple de sonic dans sgdk qui utilise SPR_initSprite
Et l'exemple du site https://code.google.com/p/sgdk/wiki/Sprites
qui utilise : SPR_setSprite et aussi VDP_setSpriteP si on veut utiliser une structure.
Entre l'exemple de Sonic dans sample et le site quel est le best practice ? ou quels sont les différences ? je n'ai pas vu de Deprecated method dans l'une ou l'autre.
Il y a l'exemple de sonic dans sgdk qui utilise SPR_initSprite
Et l'exemple du site https://code.google.com/p/sgdk/wiki/Sprites
qui utilise : SPR_setSprite et aussi VDP_setSpriteP si on veut utiliser une structure.
Entre l'exemple de Sonic dans sample et le site quel est le best practice ? ou quels sont les différences ? je n'ai pas vu de Deprecated method dans l'une ou l'autre.
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
pckid a écrit:
@bfg : pour les directives pré compilo, je connaissais sauf cette syntaxe la dernière je ne pensais pas que l'on pouvait cumuler, " #define vs8 volatile s8 "
Moi non plus je l'ai découvert avec ton include :) :)
bfg- Patient contaminé
- Nombre de messages : 806
Localisation : DMC
Date d'inscription : 11/09/2005
Re: Sgdk - Sega Megadrive / Genesis Development Kit
pour les sprites tu as utilisé quelle methode ?
Car des fois on t'annonce du code , mais on te dit pas qu'il faut déclarer un fichier res
tu passes par une structure ? ou tu es passé par l'exemple du sonic du source comme moi à l'époque.
ps : sonic.size>>8 le >> signifie quoi ?
Car des fois on t'annonce du code , mais on te dit pas qu'il faut déclarer un fichier res
tu passes par une structure ? ou tu es passé par l'exemple du sonic du source comme moi à l'époque.
ps : sonic.size>>8 le >> signifie quoi ?
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
>> : décalage binaire vers la droite (de 8 positions dans ton exemple); ça revient à diviser par 2^8=256.
Si je ne me trompe pas c'est un décalage logique pour un type unsigned et un décalage arithmétique pour un signed (conservation du bit de signe).
Si je ne me trompe pas c'est un décalage logique pour un type unsigned et un décalage arithmétique pour un signed (conservation du bit de signe).
Dernière édition par vingazole le Dim 23 Nov 2014 - 10:54, édité 1 fois
vingazole- Infirmier
- Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 05/01/2012
Re: Sgdk - Sega Megadrive / Genesis Development Kit
normalement les >> ou << sont pour des décalage de bits (vers la gauche ou la droite)
edit. grillé par vingazole ^^
edit. grillé par vingazole ^^
Re: Sgdk - Sega Megadrive / Genesis Development Kit
pckid a écrit:Autre chose : L'affichage des Sprites : (je ne sais pas quel methode Bfg a choisi)
Il y a l'exemple de sonic dans sgdk qui utilise SPR_initSprite
Et l'exemple du site https://code.google.com/p/sgdk/wiki/Sprites
qui utilise : SPR_setSprite et aussi VDP_setSpriteP si on veut utiliser une structure.
Entre l'exemple de Sonic dans sample et le site quel est le best practice ? ou quels sont les différences ? je n'ai pas vu de Deprecated method dans l'une ou l'autre.
Je te conseille d'utiliser la méthode utiliser dans l'exemple sonic (avec SPR_initSprite(..)) qui correspond à la nouvelle méthode et qui exploite le nouveau Sprite Engine. L'idée c'est de déclarer une ressource de type SPRITE (là encore tu peux t'inspirer du fichier .res de l'exemple sonic) et ensuite le sprite engine gère pas mal de choses pour toi, contrairement à l'ancienne méthode qui est beaucoup plus bas niveau (celle expliquée dans le wiki, je dois vraiment le mettre à jour :-/).
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
@Stef :
Merci beaucoup, sur le wiki j'arrivais pas comprendre pourquoi mon code ne marchait pas.
Pour les ressources graphiques on est obligé d'utiliser le fichier gfx.res ?
ou l'on peut faire son : custom.res ?
Bien sur j'ai testé mais pas trop concluant, je vois pas ou cela bloque
(pourquoi je fais cela, car j'ai peur qu'il aille chercher le gfx du compilo)
Edit : j'ai reussi a créer un fichier ressource de type "pckid.res" et "pckid.h" et cela marche !
Merci beaucoup, sur le wiki j'arrivais pas comprendre pourquoi mon code ne marchait pas.
Pour les ressources graphiques on est obligé d'utiliser le fichier gfx.res ?
ou l'on peut faire son : custom.res ?
Bien sur j'ai testé mais pas trop concluant, je vois pas ou cela bloque
(pourquoi je fais cela, car j'ai peur qu'il aille chercher le gfx du compilo)
Edit : j'ai reussi a créer un fichier ressource de type "pckid.res" et "pckid.h" et cela marche !
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Oui j'allais te répondre, tu peux utiliser n'importe quel nom tant que l'extension est bien .res (le makefile se sert de l'extension pour reconnaitre ton fichier de ressource).
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
J'avais une question pour effectuer un scrolling d'un background. Il y a bien des méthodes, via line, tile, plan.
Par contre je n'ai pas vu d'option concernant la répétition de celui ci.
Ex: mon background fait 320x224. Je veux que quand mon personnage avance je souhaiterai que tout se décale sur la gauche et que la partie qui vient de disparaitre apparaisse à droite.
Est ce possible ?
Par contre je n'ai pas vu d'option concernant la répétition de celui ci.
Ex: mon background fait 320x224. Je veux que quand mon personnage avance je souhaiterai que tout se décale sur la gauche et que la partie qui vient de disparaitre apparaisse à droite.
Est ce possible ?
r_songo- Patient contaminé
- Nombre de messages : 863
Age : 48
Localisation : Nancy
Date d'inscription : 18/11/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Par défaut c'est ce que ça fait mais il faut que la taille de ton décor soit aligné sur la taille horizontal du plan (32, 64 ou 128 tiles de largeur selon le réglage du VDP).
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Il y a des tutos pour la MAP ?
Sinon normalement on affiche pas le fond d'un decor avec un simple PNG ? en conception on doit pas aussi faire une MAP pour les background ?
Merci à vous.
Sinon normalement on affiche pas le fond d'un decor avec un simple PNG ? en conception on doit pas aussi faire une MAP pour les background ?
Merci à vous.
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Stef quand tu dis largeur c'est width ?
r_songo- Patient contaminé
- Nombre de messages : 863
Age : 48
Localisation : Nancy
Date d'inscription : 18/11/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
r_songo
Tu as compris ces fonctions dans le jeu sonic ?
Tu as compris ces fonctions dans le jeu sonic ?
- Code:
// init sprites engine
SPR_init(256);
// set all palette to black
VDP_setPaletteColors(0, palette_black, 64);
// VDP process done, we can re enable interrupts
SYS_enableInts();
// ici si j'enleve les interruptions cela change rien pour le fade in , il le fait quand même.
// fade in (disable interrupts because of the passive fade in)
SYS_disableInts();
VDP_fadeIn(0, (3 * 16) - 1, palette, 20, FALSE);
SYS_enableInts();
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: Sgdk - Sega Megadrive / Genesis Development Kit
Sinon normalement on affiche pas le fond d'un decor avec un simple PNG ? en conception on doit pas aussi faire une MAP pour les background ?
Merci à vous.
Pour le moment je ne gère pas encore les fichiers map (ce que j'ajouterai plus tard) mais ce n'est pas un problème car avec une simple grande image Rescomp génère tout ça pour toi (la map interne et la base de tiles).
Ensuite à partir du code tu peux accéder à cette map
r_songo a écrit:Stef quand tu dis largeur c'est width ?
oui c'est bien ça
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: Sgdk - Sega Megadrive / Genesis Development Kit
pckid a écrit:r_songo
Tu as compris ces fonctions dans le jeu sonic ?
- Code:
// init sprites engine
SPR_init(256);
// set all palette to black
VDP_setPaletteColors(0, palette_black, 64);
// VDP process done, we can re enable interrupts
SYS_enableInts();
// ici si j'enleve les interruptions cela change rien pour le fade in , il le fait quand même.
// fade in (disable interrupts because of the passive fade in)
SYS_disableInts();
VDP_fadeIn(0, (3 * 16) - 1, palette, 20, FALSE);
SYS_enableInts();
Pourtant c'est documenté :p
Tu peux ignorer les disableInts() & enableInts(), disons que ce sont des sécurités pour éviter d'accèder au VDP depuis la VINT lorsqu'on y accède depuis le code principal.
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Page 1 sur 34 • 1, 2, 3 ... 17 ... 34
Sujets similaires
» Sgdk - Sega Megadrive / Genesis Development Kit
» SGDK scrolling ... (encore) - (MEGADRIVE/GENESIS)
» Sgdk - Sega Megadrive / Sprite
» BIERE PONG MegaDrive SGDK
» Lot de jeux sega megadrive / genesis
» SGDK scrolling ... (encore) - (MEGADRIVE/GENESIS)
» Sgdk - Sega Megadrive / Sprite
» BIERE PONG MegaDrive SGDK
» Lot de jeux sega megadrive / genesis
Page 1 sur 34
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum