Page 1 sur 1

couleurs des sprites 3d

Publié : mer. 21/avr./2004 13:09
par Ombres
Voila en cherchant a modifier les u v des sprites 3d a coup de poke()
j'ai trouvé qu'on pouvai modifier la couleur des vertex du sprite 3d en faisant un pokeB au bon endroit, comme ca:

Code : Tout sélectionner

PokeB(adresseDuSprite3d+20,x)   ;Couleur jaune vertex 1
PokeB(adresseDuSprite3d+21,x)   ;Couleur rose vertex 1
PokeB(adresseDuSprite3d+22,x)   ;Couleur cyan vertex 1
PokeB(adresseDuSprite3d+52,x)   ;Couleur jaune vertex 2
PokeB(adresseDuSprite3d+53,x)   ;Couleur rose vertex 2
PokeB(adresseDuSprite3d+54,x)   ;Couleur cyan vertex 2
PokeB(adresseDuSprite3d+84,x)   ;Couleur jaune vertex 3
PokeB(adresseDuSprite3d+85,x)   ;Couleur rose vertex 3
PokeB(adresseDuSprite3d+86,x)   ;Couleur cyan vertex 3
PokeB(adresseDuSprite3d+116,x)  ;Couleur jaune vertex 3
PokeB(adresseDuSprite3d+117,x)  ;Couleur rose vertex 3
PokeB(adresseDuSprite3d+118,x)  ;Couleur cyan vertex 3

;Ou x est entre 0 et 255
Une ptite démo de ce que ca donne

Tout ca pour dire qu'un commande pour faire ca directement serai bien utile :)

Publié : mer. 21/avr./2004 17:09
par Fred
t'as trouvé ca tout seul ? a taton ? Danilo avait fait un exemple sur ca justement.

Publié : mer. 21/avr./2004 17:40
par Ombres
oui tout seul, mais c'est pas ca que je cherchai ... o_0

Publié : mer. 21/avr./2004 17:53
par nico
C'est comme ça que naisse les plus grandes découvertes ! :wink:

Publié : mer. 21/avr./2004 18:45
par Ombres
Euh .. j'ai cherché dans tt le forum anglais mais je n'arrive pas a trouver l'exemple de Danilo :?

Publié : mer. 21/avr./2004 21:40
par filperj
Ombres, en jouant avec ton code je croit être tombé sur ce que tu cherchais:

Code : Tout sélectionner

Procedure clipsprite3d(bob.l,u1.f,v1.f,u2.f,v2.f,u3.f,v3.f,u4.f,v4.f)
   PokeF(bob+28,u1)
   PokeF(bob+32,v1)
   PokeF(bob+60,u2)
   PokeF(bob+64,v2)
   PokeF(bob+92,u4)
   PokeF(bob+96,v4)
   PokeF(bob+124,u3)
   PokeF(bob+128,v3)
   
EndProcedure
Tu avais fait le plus gros et j'ai eu un petit coup de bol...
Merci beaucoup :wink:

Publié : jeu. 22/avr./2004 7:46
par Ombres
Super ca marche :D
Merci !!!

Publié : jeu. 22/avr./2004 8:17
par Ombres
Je l'ai un peu modifié pour que ca fonctionne comme celui des sprites normaux :)

Code : Tout sélectionner

Procedure ClipSprite3D(sprite.l,tailleTextureX,tailleTextureY,x,y,largeur,hauteur)
   Protected um.f,up.f,vm.f,vp.f
   um = x/tailleTextureX
   up = um + largeur/tailleTextureX
   vm = y/tailleTextureY
   vp = vm + hauteur/tailleTextureY
   ZoomSprite3D(sprite,largeur,hauteur)
   PokeF(sprite+28,um)
   PokeF(sprite+32,vm)
   PokeF(sprite+60,up)
   PokeF(sprite+64,vm)
   PokeF(sprite+92,um)
   PokeF(sprite+96,vp)
   PokeF(sprite+124,up)
   PokeF(sprite+128,vp)
EndProcedure
Le seul probleme c'est de connaitre la taille x et y de la texture utilisée par le sprite3d...