couleurs des sprites 3d

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Ombres
Messages : 51
Inscription : sam. 24/janv./2004 12:46
Contact :

couleurs des sprites 3d

Message 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 :)
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

t'as trouvé ca tout seul ? a taton ? Danilo avait fait un exemple sur ca justement.
Ombres
Messages : 51
Inscription : sam. 24/janv./2004 12:46
Contact :

Message par Ombres »

oui tout seul, mais c'est pas ca que je cherchai ... o_0
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

C'est comme ça que naisse les plus grandes découvertes ! :wink:
Ombres
Messages : 51
Inscription : sam. 24/janv./2004 12:46
Contact :

Message par Ombres »

Euh .. j'ai cherché dans tt le forum anglais mais je n'arrive pas a trouver l'exemple de Danilo :?
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message 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:
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
Ombres
Messages : 51
Inscription : sam. 24/janv./2004 12:46
Contact :

Message par Ombres »

Super ca marche :D
Merci !!!
Ombres
Messages : 51
Inscription : sam. 24/janv./2004 12:46
Contact :

Message 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...
Répondre