Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
ff7:technique:field:bg [Le 04/07/2009 à 11:25] myst6reff7:technique:field:bg [Le 13/11/2014 à 06:13] – modification externe 127.0.0.1
Ligne 59: Ligne 59:
 ^119 + 52 (NbSprite1 + NbSprite2 + NbSprite3 + NbSprite4)|2 octets^0|| ^119 + 52 (NbSprite1 + NbSprite2 + NbSprite3 + NbSprite4)|2 octets^0||
  
-^Données^^^^+^[[#les_donnees_de_l_image|Données]]^^^^
 ^121 + 52 (NbSprite1 + NbSprite2 + NbSprite3 + NbSprite4)|7 octets^TEXTURE|| ^121 + 52 (NbSprite1 + NbSprite2 + NbSprite3 + NbSprite4)|7 octets^TEXTURE||
 ^128 + 52 (NbSprite1 + NbSprite2 + NbSprite3 + NbSprite4)|nb de pages * 65 540 + 84|**<color blue>[[#les_donnees_de_l_image|Données de l'image]]</color>**^| ^128 + 52 (NbSprite1 + NbSprite2 + NbSprite3 + NbSprite4)|nb de pages * 65 540 + 84|**<color blue>[[#les_donnees_de_l_image|Données de l'image]]</color>**^|
Ligne 75: Ligne 75:
 ^2|2 octets|**Position cible X**|| ^2|2 octets|**Position cible X**||
 ^4|2 octets|**Position cible Y**|| ^4|2 octets|**Position cible Y**||
-^6|2 octets^0 (sauf blin66_4,blin70_2,hyou6,jail4...)|| +^6|2 octets|//Inutilisé//|| 
-^8|2 octets^0||+^8|2 octets|//Inutilisé//||
 ^10|2 octets|**Position source X**|| ^10|2 octets|**Position source X**||
 ^12|2 octets|**Position source Y**|| ^12|2 octets|**Position source Y**||
-^14|2 octets^0 (si c'est différent de 0, c'est une erreur)|| +^14|2 octets|//Inutilisé//|| 
-^16|2 octets^0 (si c'est différent de 0, c'est une erreur)|| +^16|2 octets|//Inutilisé//|| 
-^18|2 octets^0 (sauf le premier sprite : 16) (si c'est différent de ou de 16, c'est une erreur)|| +^18|2 octets|//Inutilisé// (largeur tile : 16 ou 0)|| 
-^20|2 octets^0 (sauf le premier sprite : 16) (si c'est différent de ou de 16, c'est une erreur)||+^20|2 octets|//Inutilisé// (hauteur tile : 16 ou 0)||
 ^22|2 octets|**Numéro palette**^Commence à la palette n°0| ^22|2 octets|**Numéro palette**^Commence à la palette n°0|
 ^24|2 octets|**Id**^4095| ^24|2 octets|**Id**^4095|
-^26|1 octet^0 (si c'est différent de 0, c'est une erreur)|| +^26|1 octet|//Inutilisé//|| 
-^27|1 octet^0 (si c'est différent de 0, c'est une erreur)|| +^27|1 octet|//Inutilisé//|| 
-^28|2 octets^0 (si c'est différent de 0, c'est une erreur)|| +^28|1 octet^0|| 
-^30|2 octets^0 (si c'est différent de 0, c'est une erreur)||+^29|1 octet^0|| 
 +^30|2 octets^0||
 ^32|2 octets|**Page**^| ^32|2 octets|**Page**^|
-^34|2 octets^0 (si c'est différent de 0, c'est une erreur)|| +^34|2 octets|//Inutilisé//|| 
-^36|2 octets|Octets par couleur^1 (palettes) ou 2 (sans palettes)| +^36|2 octets|Octets par couleur^0 (peu de couleurs), 1 (palettes) ou 2 (sans palettes)| 
-^38|4 octets^0||+^38|4 octets|//Inutilisé//||
 ^42|4 octets|Coordonnée X texture^| ^42|4 octets|Coordonnée X texture^|
 ^46|4 octets|Coordonnée Y texture^| ^46|4 octets|Coordonnée Y texture^|
Ligne 102: Ligne 103:
 ^2|2 octets|**Position cible X**|| ^2|2 octets|**Position cible X**||
 ^4|2 octets|**Position cible Y**|| ^4|2 octets|**Position cible Y**||
-^6|2 octets^0 (sauf farm,mds5_3,mrkt2,mtcrl_5...)|| +^6|2 octets|//Inutilisé//|| 
-^8|2 octets^0||+^8|2 octets|//Inutilisé//||
 ^10|2 octets|**Position source X**|| ^10|2 octets|**Position source X**||
 ^12|2 octets|**Position source Y**|| ^12|2 octets|**Position source Y**||
Ligne 114: Ligne 115:
 ^26|1 octet|**Paramètre**^| ^26|1 octet|**Paramètre**^|
 ^27|1 octet|**État**^| ^27|1 octet|**État**^|
-^28|2 octets|Transparence par addition ?^| +^28|1 octet|Transparence par addition^Booléen| 
-^30|2 octets|Transparence par addition^0 (inactive) ou (active)|+^29|1 octet|Transparence par addition ?^Booléen
 +^30|2 octets|Transparence par addition ?^01, 2 ou 3|
 ^32|2 octets|**Page**^| ^32|2 octets|**Page**^|
 ^34|2 octets|**<color red>EffectPage</color>**^| ^34|2 octets|**<color red>EffectPage</color>**^|
-^36|2 octets|Octets par couleur^1 (palettes) ou 2 (sans palettes)|+^36|2 octets|Octets par couleur^0 (peu de couleurs), 1 (palettes) ou 2 (sans palettes)|
 ^38|4 octets|Coordonnée Z^| ^38|4 octets|Coordonnée Z^|
 ^42|4 octets|Coordonnée X texture^| ^42|4 octets|Coordonnée X texture^|
Ligne 131: Ligne 133:
 ^6|2 octets^0|| ^6|2 octets^0||
 ^8|2 octets^0|| ^8|2 octets^0||
-^10|2 octets^0|| +^10|2 octets|**Position source X**^
-^12|2 octets^0|+^12|2 octets|**Position source Y**^| 
-^14|2 octets|**Position source X**^| +^14|2 octets|**Position source X (2)** (pour les effectPages)^| 
-^16|2 octets|**Position source Y**^|+^16|2 octets|**Position source Y (2)** (pour les effectPages)^|
 ^18|2 octets|Largeur bloc^32| ^18|2 octets|Largeur bloc^32|
 ^20|2 octets|Hauteur bloc^32| ^20|2 octets|Hauteur bloc^32|
Ligne 141: Ligne 143:
 ^26|1 octet|**Paramètre**^| ^26|1 octet|**Paramètre**^|
 ^27|1 octet|**État**^| ^27|1 octet|**État**^|
-^28|2 octets|Transparence par addition ?^0 ou 1| +^28|1 octet|Transparence par addition^Booléen| 
-^30|2 octets|Transparence par addition^0 (inactive) ou 1 (active)|+^29|octet|Transparence par addition ?^Booléen
 +^30|2 octets|Transparence par addition ?^0 ou 1|
 ^32|2 octets|**Page**^| ^32|2 octets|**Page**^|
 ^34|2 octets|**<color red>effectPage</color>**^| ^34|2 octets|**<color red>effectPage</color>**^|
-^36|2 octets|Type de palette^0 (peu de couleurs) ou 1 (palette normale)|+^36|2 octets|Type de palette^0 (peu de couleurs) ou 1 (palette normale) ou 2 (sans palettes)|
 ^38|4 octets^0|| ^38|4 octets^0||
 ^42|4 octets|Coordonnée X texture^| ^42|4 octets|Coordonnée X texture^|
Ligne 165: Ligne 168:
 ^20|2 octets|Hauteur bloc^32| ^20|2 octets|Hauteur bloc^32|
 ^22|2 octets|**Numéro palette**^Commence à la palette n°0| ^22|2 octets|**Numéro palette**^Commence à la palette n°0|
-^24|2 octets|**Id** ?^0|+^24|2 octets|**Id**^0|
 ^26|1 octet|**Paramètre**^| ^26|1 octet|**Paramètre**^|
 ^27|1 octet|**État**^| ^27|1 octet|**État**^|
-^28|2 octets|Transparence par addition ?^0 ou 1| +^28|1 octet|Transparence par addition^Booléen| 
-^30|2 octets|Transparence par addition^0 (inactive) ou (active)|+^29|octet|Transparence par addition ?^Booléen
 +^30|2 octets|Transparence par addition ?^0ou 3|
 ^32|2 octets|**Page**^| ^32|2 octets|**Page**^|
 ^34|2 octets|**<color red>effectPage</color>**^| ^34|2 octets|**<color red>effectPage</color>**^|
 ^36|2 octets|Type de palette^0 (peu de couleurs) ou 1 (palette normale)| ^36|2 octets|Type de palette^0 (peu de couleurs) ou 1 (palette normale)|
-^38|4 octets^0||+^38|4 octets|Coordonnée Z^0 ou 999|
 ^42|4 octets|Coordonnée X texture^| ^42|4 octets|Coordonnée X texture^|
 ^46|4 octets|Coordonnée Y texture^| ^46|4 octets|Coordonnée Y texture^|
Ligne 255: Ligne 259:
  if($Y > 32768) $Y-=65536;  if($Y > 32768) $Y-=65536;
  
- if($X>1000 || $X<-1000) $X=0;//fix X A AFFINER ! + if($X==10000 || $X==-3184) continue;//fix
- if($Y>1000 || $Y<-1000) $Y=0;//fix Y A AFFINER !+
   
  if($X > $largeurMax && $X > 0) $largeurMax = $X;  if($X > $largeurMax && $X > 0) $largeurMax = $X;
Ligne 320: Ligne 323:
 Pour chaque octets du sprite de 16*16 pixels, il faut aller chercher la couleur dans la palette (le numéro de palette est donné dans les données du sprites). Un exemple : vous avez l'octet 0x5d, alors il faut aller chercher la **0x5d-ième couleur de la palette**. Comme il y a deux octets par couleur dans une palette, la position dans la palette est **0x5d*2**. Et pour savoir quelle palette utiliser, prenez l'info dans les sprites data (ça va de 0 à nbPalette - 1). J'ai développé dans l'article [[pal|palette]] la manière de traduire les deux octets de la couleur en une couleur RVB. Pour chaque octets du sprite de 16*16 pixels, il faut aller chercher la couleur dans la palette (le numéro de palette est donné dans les données du sprites). Un exemple : vous avez l'octet 0x5d, alors il faut aller chercher la **0x5d-ième couleur de la palette**. Comme il y a deux octets par couleur dans une palette, la position dans la palette est **0x5d*2**. Et pour savoir quelle palette utiliser, prenez l'info dans les sprites data (ça va de 0 à nbPalette - 1). J'ai développé dans l'article [[pal|palette]] la manière de traduire les deux octets de la couleur en une couleur RVB.
  
-<note>Si il n'y a pas de palettes, les couleurs sont données directement dans les données de l'image, un pixel = 2 octets. Couleurs sur deux octets : **<color red>rrrrr</color><color green>vvv vvv</color><color blue>bbbbb</color>** (avec r=rouge, v=vert, b=bleu).\\ Par contre ne tracez pas les pixels noirs (r=0,v=0,b=0) !</note>+<note>Si il n'y a pas de palettes, les couleurs sont données directement dans les données de l'image, un pixel = 2 octets. Couleurs sur deux octets : **<color red>rrrrr</color><color green>vvv vv</color>m<color blue>bbbbb</color>** (avec r=rouge, v=vert, b=bleu, m=inconnu).\\ Par contre ne tracez pas les pixels noirs (r=0,v=0,b=0) !</note>
  
 == Complications sur les palettes == == Complications sur les palettes ==
  
-  * Dans l'en-tête (celle au tout début de l'article :-p ), vous avez extrait l'activité des premiers pixels des palettes (que j'ai nommé **<color green>actPixPal</color>**). Celui-ci est une suite de vingt-quatre 0 et 1. En fait, si par exemple le premier octet est 1, cela signifie que toutes les couleurs de la palette n°0 doivent être utilisées, si le premier octet est 0, cela signifie que la première couleur de la palette n°0 ne doit pas être utilisée.\\ Autre exemple : si le quatrième octet est sur 1, cela signifie qu'on peut utiliser toutes les couleurs de la palette n°3, si il est sur 0, cela signifie qu'on ne peut pas utiliser la première couleur de la palette n°3.+  * Dans l'en-tête (celle au tout début de l'article :-p ), vous avez extrait l'activité des premiers pixels des palettes (que j'ai nommé **<color green>actPixPal</color>**). Celui-ci est une suite de vingt-quatre 0 et 1. En fait, si par exemple le premier octet est 0, cela signifie que toutes les couleurs de la palette n°0 doivent être utilisées, si le premier octet est 1, cela signifie que la première couleur de la palette n°0 ne doit pas être utilisée.\\ Autre exemple : si le quatrième octet est sur 1, cela signifie qu'on peut utiliser toutes les couleurs de la palette n°3, si il est sur 0, cela signifie qu'on ne peut pas utiliser la première couleur de la palette n°3.
  
-  * Si vous rencontrez un pixel noir (r=0,v=0,b=0), remplacez-le par la première couleur de la palette (peut importe la valeur de **<color green>actPixPal</color>**).+  * Si vous rencontrez un pixel noir (r=0,v=0,b=0,m=0), remplacez-le par la première couleur de la palette (peu importe la valeur de **<color green>actPixPal</color>**).
  
 == Mini récapitulatif == == Mini récapitulatif ==
Ligne 383: Ligne 386:
 ==== Sprites zone 3 ==== ==== Sprites zone 3 ====
  
-Changement majeur : on trace des sprites de 32*32 pixels.+Changement majeur : on trace des sprites de 32*32 pixels. Cette zone est une sorte de background répété au centre de l'écran (comme la propriété ''background: repeat;'' en css).
  
 ==== Sprites zone 4 ==== ==== Sprites zone 4 ====
  
-Rien à ajouter.+Sprites de 32*32. Cette zone est une sorte de background fixé là où se trouve la caméra (comme la propriété ''background: fixed;'' en css).
  
 <clear/> <clear/>
Ligne 393: Ligne 396:
 ===== L'ordre des couches ===== ===== L'ordre des couches =====
  
-C'est un sujet un peu délicat, je vais quand même vous donner les trucs qui marchent souvent. +L'ordre des couches est donné par l'Id des infos SpritesCet id est compris entre 0 et 4096 (inclus), avec 0 le plus près et 4096 le plus éloignéDans les scriptson peut changer cette valeur entre -32768 et +32767 (signed short). Il est donc judicieux de trier les tiles par leur Id.
- +
-  - Premièrement, sachez que Sprites zone 2 doit être tracé en deux fois, une fois juste les sprites sans effectPageune deuxième fois avec effectPage. +
-  - Deuxièmement, Si il y a Sprites zone 3 ET Sprites zone 4 (les deux)l'ordre en est bouleversé : +
-    - zone 4 +
-    - zone 3 +
-    - zone 1 +
-    zone 2 (sans effectPage) +
-    - zone 2 (avec effectPage) +
- +
  
 +Par défaut, les couches ont des id prédéfinis :
 +  * Zone 1 : 4095
 +  * Zone 2 : variable
 +  * Zone 3 : 4096
 +  * Zone 4 : 0  
 + 
 + La zone 4 est toujours devant, la zone 3 derrière, la zone 1 juste devant la 3 et la 2 ça dépend. Ces valeurs peuvent changer par les scripts, si vous voulez optimiser l'affichage, il faut savoir lire les scripts :-) .
 + 
Recent changes RSS feed Valid XHTML 1.0 Valid CSS Powered by DokuWiki GNU FDL

Qui sommes-nous ?
Aidez WikiSquare en le faisant connaître !
Sauf mention contraire, tous les textes sont disponibles sous les termes de la GNU Free Documentation License.
Les images sont sous le copyright de leurs auteurs.

Page générée en 0.022526025772095 seconde.