Exploiter un fichier .raw - C - Programmation
Marsh Posté le 05-11-2007 à 10:48:53
A ton avis, que ce passe-t-il dans le code suivant :
Code :
|
En final, "b" n'aura jamais la valeur "1". Pourquoi ?
Marsh Posté le 06-11-2007 à 00:18:18
Bah je comprend pas... si mon pixel vaut 255 alors j'aurai la valeur 1... tu veux dire que 254 est le maximum, c'est la que tu voulais en venir ??
Le probleme c'est que le test sur la valeur 255 marche! ce so,n les autres valeurs qui ne marchent pas , celles qui sont differentes de 0 et 255
Merci de ta réponse
Marsh Posté le 06-11-2007 à 08:10:53
Non, ce qu'il veut dire c'est qu'une clause else est associée à une seule clause if, pas 50.
Marsh Posté le 06-11-2007 à 09:05:04
OK les gars c'est sympa!
Je vais tester ca, je vous tiens au jus
Merci encore
Marsh Posté le 06-11-2007 à 09:11:03
J'ai mis pleins de if a la suite les uns des autres et ca ne change rien ... il passe dans le if qui teste la valeur 255 et dans celui qui teste la valeur 0, mais toujours rien dans les autres...
Marsh Posté le 06-11-2007 à 10:21:17
Montre voir comment t'as imbriqué tes tests (si t'as changé quelque chose parce que j'en doute...)
Et sinon, t'as déjà entendu parler de switch ?
Marsh Posté le 06-11-2007 à 10:24:34
la portée d'un else, c'est son if associé.
Code :
|
On est pas en PASCAL
Marsh Posté le 06-11-2007 à 15:20:10
+1: regardes aussi du côté de l'instruction "switch".
ET n'oublie pas les "break;" entre chaque "case"
Marsh Posté le 06-11-2007 à 19:36:15
Ok je vais mettre un switch a la place
Je vous tiens au courant... mais je crois bien que j'ai un probleme d'interpretation de niveaux de gris sous photoshop car ca parait bizarre que ca marche pas quand meme !
Marsh Posté le 06-11-2007 à 19:45:15
Ca réagit de la meme maniere, je pense donc que le probleme ne vient pas du code, mais de photoshop... je dois aps créer le bon fichier en niveaux de gris
Marsh Posté le 06-11-2007 à 19:47:37
Par curiosité, tu pourrais poster ton code ?
Marsh Posté le 07-11-2007 à 10:16:59
Et voila pour le bout de code
Code :
|
Marsh Posté le 07-11-2007 à 16:01:41
Un petit conseil : ajoute un "default:" à ton "switch" et affecte une valeur bidon à "terrrain[i][j]" pour tester.
Marsh Posté le 09-11-2007 à 21:56:29
C'est bon le probleme est résolu. Le souci ne venait donc bien pas du code mais du fait que photoshop code ses couleurs comme une merde
Avec un niveau de gris de 40 en décimal, il renvoie 134 ... allez savoir pourquoi !
Merci a tous
Marsh Posté le 04-11-2007 à 18:43:51
Salut tout le monde.
Pour un projet, j'utilise une fonction qui permet de recupérer un fichier raw que j'ai créé sous photoshop.
Ceci dans le but de créer des niveaux de jeu pour un genre de pacman( un peu modifié )
Au stade ou j’en suis, j’ai réussi en dessinant en noir ou en blanc sur un fichier raw (sous photoshop) a structurer le niveau grace au petit bout de code suivant :
for (i=0;i<lig ; i++)
{
for (j=0 ; j<col; j++)
{
if(ima[i][j]==255)terrain[i][j]='.';
else cTableau[i][j]=SYMBOLE_MUR;
}
}
Lorsque j’ai dessiné du blanc (255), je dessine un point : '.' (chemin autorisé) et lorsque j’ai du noir(0), je mets un mur (symbole : '+') pour que le bonhome ne puisse pas s’y déplacer.
Tout ca marche tres bien.
Cependant, j’aimerai aller plus loin dans l’exploitation de cette fonction et générer les items (F,S,V,etc) ainsi que des ennemis X.
J’ai édité le fichier raw sous photoshop et avec une palette de niveaux de gris (0-255), j’ai donné a chaque items un niveau de gris (par ex : les ennemis 'X' valent 40 en décimal et 29 en hexa(donné par la palette de photoshop))
/!\ Je parle simplement de l'affichage du niveau au départ, car vous allez me dire que mes ennemis bougent pas
Dans le petit bout de code précédent, j’ai donc ajouté une liste de if de la manière suivante (en gras) :
for (i=0;i<lig ; i++)
{
for (j=0 ; j<col; j++)
{
if(ima[i][j]==255)terrain[i][j]='.';
if(ima[i][j]==40 terrain[i][j]=’X'; // Car j’ai dessiné les ennemis X avec le niveau de gris 40 sous photoshop.
…
else terrain [i][j]=SYMBOLE_MUR;
}
}
Mais malheureusement ca ne marche pas…
Avez-vous une idée ?
J'ai l'impression qu'en dehors du noir et du blanc, il ne reconnait pas les autres nuances de gris...
MErci
Message édité par mrpropre007 le 04-11-2007 à 18:44:14