zeb
26/09/2006, 18h00
Bonjour, étant nouveau je vais commencer par me présenter
Donc moi c zeb, je commence dans le developpement DS : je me suis pour l'instant contenté de faire un pong (et oui faut bien commencer par le plus simple lol), pas de PAlib, je me suis inscrit ici car cette communauté a l'air d'etre active et voila je crois que c'est tout.
Mon probleme est le suivant :
Quand je veux mettre juste 1 sprite depuis un .pcx (64x64, 256 couleurs) ca marche tres bien
voila le code utilisé :
-------------------------------
SpriteEntry sprite[128];
sImage img;
loadPCX((u8*)img_pcx, &img);
imageTileData(&img);
int i;
for(i = 0; i < 32*64; i++)
SPRITE_GFX_SUB[i] = img.data16[i];
for(i = 0; i < 256; i++)
SPRITE_PALETTE_SUB[i] = img.palette[i];
sprite[0].attribute[0] = ATTR0_COLOR_256 | ATTR0_SQUARE | 0;
sprite[0].attribute[1] = ATTR1_SIZE_64 | 0;
sprite[0].attribute[2] = 0;
sprite[0].attribute[3] = 0;
-------------------------------
Par contre pour en mettre un deuxieme j'ai un souci. Plus précisément au niveau de la palette.
Pour SPRITE_GFX_SUB il suffit lors de la boucle for d'écrire SPRITE_GFX_SUB[i+32*64] = ...
et de donner comme valeur : sprite[1].attribute[2] = 128;
(et évidemment de ne pas superposer les 2 donc changer la valeur de x ou y)
Ca, ca marche.
ca nous donne donc comme code :
-------------------------------
sImage img1;
loadPCX((u8*)img1_pcx, &img1);
imageTileData(&img1);
int i;
for(i = 0; i < 32*64; i++)
SPRITE_GFX_SUB[i+32*64] = img1.data16[i];
for(i = 0; i < 256; i++)
SPRITE_PALETTE_SUB[i] = img1.palette[i];
sprite[0].attribute[0] = ATTR0_COLOR_256 | ATTR0_SQUARE | 100; //changement de valeur pour y
sprite[0].attribute[1] = ATTR1_SIZE_64 | 0;
sprite[0].attribute[2] = 128;
sprite[0].attribute[3] = 0;
-------------------------------
J'ai donc essayer de calquer ce que je faisais avec SPRITE_GFX_SUB pour SPRITE_PALETTE_SUB mais ca ne marche pas, ca met bien une image de la bonne taille au bon endroit mais pour les couleurs c'est n'importe quoi.
Donc si qqun a une réponse a mon probleme, j'en serais tres heureux :)
Donc moi c zeb, je commence dans le developpement DS : je me suis pour l'instant contenté de faire un pong (et oui faut bien commencer par le plus simple lol), pas de PAlib, je me suis inscrit ici car cette communauté a l'air d'etre active et voila je crois que c'est tout.
Mon probleme est le suivant :
Quand je veux mettre juste 1 sprite depuis un .pcx (64x64, 256 couleurs) ca marche tres bien
voila le code utilisé :
-------------------------------
SpriteEntry sprite[128];
sImage img;
loadPCX((u8*)img_pcx, &img);
imageTileData(&img);
int i;
for(i = 0; i < 32*64; i++)
SPRITE_GFX_SUB[i] = img.data16[i];
for(i = 0; i < 256; i++)
SPRITE_PALETTE_SUB[i] = img.palette[i];
sprite[0].attribute[0] = ATTR0_COLOR_256 | ATTR0_SQUARE | 0;
sprite[0].attribute[1] = ATTR1_SIZE_64 | 0;
sprite[0].attribute[2] = 0;
sprite[0].attribute[3] = 0;
-------------------------------
Par contre pour en mettre un deuxieme j'ai un souci. Plus précisément au niveau de la palette.
Pour SPRITE_GFX_SUB il suffit lors de la boucle for d'écrire SPRITE_GFX_SUB[i+32*64] = ...
et de donner comme valeur : sprite[1].attribute[2] = 128;
(et évidemment de ne pas superposer les 2 donc changer la valeur de x ou y)
Ca, ca marche.
ca nous donne donc comme code :
-------------------------------
sImage img1;
loadPCX((u8*)img1_pcx, &img1);
imageTileData(&img1);
int i;
for(i = 0; i < 32*64; i++)
SPRITE_GFX_SUB[i+32*64] = img1.data16[i];
for(i = 0; i < 256; i++)
SPRITE_PALETTE_SUB[i] = img1.palette[i];
sprite[0].attribute[0] = ATTR0_COLOR_256 | ATTR0_SQUARE | 100; //changement de valeur pour y
sprite[0].attribute[1] = ATTR1_SIZE_64 | 0;
sprite[0].attribute[2] = 128;
sprite[0].attribute[3] = 0;
-------------------------------
J'ai donc essayer de calquer ce que je faisais avec SPRITE_GFX_SUB pour SPRITE_PALETTE_SUB mais ca ne marche pas, ca met bien une image de la bonne taille au bon endroit mais pour les couleurs c'est n'importe quoi.
Donc si qqun a une réponse a mon probleme, j'en serais tres heureux :)