Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: Problème de tile avec la Palib  (Lu 289 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Dr.Razor Hors ligne
Newbie
*
Messages: 25


Voir le profil
« 08 Juin 2012, 18:52:29 »

Salut,

Je développe depuis un moment un moteur de jeu pokemon pour la ds. J'utilise la Palib ( Même si je pense tout refaire avec la Libnds). J'utilise des fichiers externes pour stocker les maps et j'utilise une fonction qui les mets dans un tableau:

Code:
fichier = fopen(mapfile, "r");
if (fichier != NULL)
{
for (i = 0; i < maxy;i++)  //drawing the background
{
for (j = 0; j < maxx;j++)
{
fscanf(fichier, "%d,", &map[i][j]);
}
}
fclose(fichier);
}

Et ensuite je l'affiche avec une autre fonction:

Code:
void generationmap(void){

s32 valeur_tile;
for (i = 0; i < maxy;i++)  //drawing the background
{
        for (j = 0; j < maxx;j++) {
    valeur_tile = map[j][i];
if (valeur_tile>0){
PA_SetLargeMapTile(1, 3, i*2, j*2, tiles[valeur_tile][0]);
PA_SetLargeMapTile(1, 3, (i*2)+1, j*2, tiles[valeur_tile][1]);
PA_SetLargeMapTile(1, 3, i*2, (j*2)+1, tiles[valeur_tile][2]);
PA_SetLargeMapTile(1, 3, (i*2)+1, (j*2)+1, tiles[valeur_tile][3]);
}
if (valeur_tile==0){
PA_SetLargeMapTile(1, 3, i*2, j*2, tiles[valeur_tile][0]);
PA_SetLargeMapTile(1, 3, (i*2)+1, j*2, tiles[valeur_tile][1]);
PA_SetLargeMapTile(1, 3, i*2, (j*2)+1, tiles[valeur_tile][2]);
PA_SetLargeMapTile(1, 3, (i*2)+1, (j*2)+1, tiles[valeur_tile][3]);
}
if (valeur_tile<0){
valeur_tile*=(-1);
PA_SetLargeMapTile(1, 3, i*2, j*2, tiles[valeur_tile][1]);
PA_SetLargeMapTile(1, 3, (i*2)+1, j*2, tiles[valeur_tile][0]);
PA_SetLargeMapTile(1, 3, i*2, (j*2)+1, tiles[valeur_tile][3]);
PA_SetLargeMapTile(1, 3, (i*2)+1, (j*2)+1, tiles[valeur_tile][2]);

PA_SetMapTileHflip(1, 3, i*2, j*2,1);
PA_SetMapTileHflip(1, 3, (i*2)+1, j*2, 1);
PA_SetMapTileHflip(1, 3, i*2, (j*2)+1, 1);
PA_SetMapTileHflip(1, 3, (i*2)+1, (j*2)+1,1);
}

        }
    }
}.

Le tableau "tiles" contient les numéros des tiles 8x8 pour faire des tiles 16x16.
Le problème est que la map que j'essaie d'afficher est grande "36x32" tiles de 16x16, et que seule une portion de la map s'affiche: et cette portion se répète. Il est aussi important de signaler que j'affiche un sprit et que le sprit aussi se répète  Tongue

Je comprend pas pourquoi cela ne marche pas, j'utilise pourtant PA_SetLargeMapTile.

Ce problème d'affichage m’embête vraiment parce que j'ai fini le système de combat !

Merci de votre aide!

Journalisée

Pages: [1]   Haut de page
Imprimer

Aller à: