Page 2 sur 3
Publié : jeu. 19/juil./2007 11:31
par Crystal Noir
non mais je veux dire à ce qui tu y as ajouté, ca marche comment exactement ?
Publié : jeu. 19/juil./2007 11:36
par Anonyme
J'accède à la structure interne des sprites 3D
je modifie la couleur des vertices du sprite avec RGBA()
j'affiche.
Tu peut quasiment tout faire avec la structure interne. sauf le café

Publié : jeu. 19/juil./2007 12:21
par Crystal Noir
bon je sais je suis nul mais à quoi correspond : "*" devant sprite et le << en pb ?
Pourquoi un tableau de couleur vu que tu utilises les valeur r,g, b de ma structure ?
doit y avoir des trucs à virer la dedans qui servent plus je pense, comme l'alpha, il est situé entre quelle et quelle valeur ?
Publié : jeu. 19/juil./2007 13:01
par Anonyme
Extrait de la doc :
Opérateur << (Décalage à gauche)
Décale vers la gauche les bits du nombre LHS de RHS places. Décaler les bits vers la gauche revient à faire une multiplication par un multiple de 2. Il est conseillé de bien comprendre les opérations binaires avant d'utiliser cet opérateur.
le <*> designe un pointeur ( dans l'exemple il pointe la structure du sprite )
on lui donne l'adresse du sprite ( IsSprite3D() )
le tableau que j'ai mis sert à avoir des couleurs différentes, ici 6.
sinon, tu peut faire un Random(255) pour initialisé des couleurs aléatoire
l'alpha sert toujours dans l'exemple.
Publié : jeu. 19/juil./2007 13:07
par Crystal Noir
oui en fait je me suis mal exprimé je savais que "*" était un pointeur
En fait j'ai du mal avec les pointeurs.
pour le << je dois dire que je ne comprends pas bien comment ca fonctionne il n y a pas une alternative à "<<" qui pourrait me paraitre plus claire ?
pour l'alpha quel valeur ca peut prendre ? car dans certains langage c'est entre 0 et 1 et dans d'autre c'est 0 / 255...
Pour la structure de Sprite_3D j'ai pas trouvé dans la doc, ya un endroit où il y a la structure complète ?
Publié : jeu. 19/juil./2007 13:19
par Anonyme
Crystal Noir a écrit :oui en fait je me suis mal exprimé je savais que "*" était un pointeur
En fait j'ai du mal avec les pointeurs.
pour le << je dois dire que je ne comprends pas bien comment ca fonctionne il n y a pas une alternative à "<<" qui pourrait me paraitre plus claire ?
pour l'alpha quel valeur ca peut prendre ? car dans certains langage c'est entre 0 et 1 et dans d'autre c'est 0 / 255...
Pour la structure de Sprite_3D j'ai pas trouvé dans la doc, ya un endroit où il y a la structure complète ?
Debug 6 << 2
Debug (6+6)*2
Debug 12 << 2
Debug (12+12)*2
les couleurs vont de 0 a 16777215 sans l'apha, la manip plus haut permet d'ecrire l'alpha donc la couleur ira à + de 16777215.
pour la structure, je te l'ai filé, sinon regarde avec le structure viewer inclu.
Sinon pour l'apha, cela ne dépend pas du langage, mais de l'api en générale, opengl peut prendre des valeur allant de 1 a 0 ou 0 a 255 , cela depend aussi de la commande. en pb c'est de 0 a 255, si tu veut une valeur de 0 a 1 , tu multiplie par 255.
@+
Publié : jeu. 19/juil./2007 13:30
par Crystal Noir
Bon ok maintenant je comprends que :
Debug 6 <<2
c'est pareil que
Debug (6+6) *2
seulement dans notre code pourquoi le << 24 ?
Pour le pointeur là, pourquoi l'identifier avec un pointeur le sprite alors qu'il existe déjà une structure pour lui ? (non non je ne suis pas un boulet)
En prog j'arrive à pas mal de chose mais les pointeurs ne sont pas vraiment mes amis

Publié : jeu. 19/juil./2007 13:42
par Anonyme
Bah en fait " *S.PB_SPRITE3D " ne pointe sur rien , c'est un pointeur de structure vide , le fait de faire :
permet de donner l'adresse du sprite à se pointeur
ensuite, il ne reste plus qu'a modifié *S avec sa structure pour donné des effets à ton sprite
Pourquoi le 24 ?
R = 8 bits
G = 8 Bits
B = 8 Bits
3*8 = 24
Publié : jeu. 19/juil./2007 14:12
par Crystal Noir
Pour la structure sprite3D je ne l'ai pas trouvé dans le visualisateur de structure ??
En fait c'est pas 24 que je demandais, c'est pourquoi il faut mettre cet enssemble << 24 ? ca change quoi dans la procédure
EDIT : enfin c'est vrai que j'ai du mal là quand même je pige tout du coup sauf ce << 24 à la fin de la procédure.
Publié : jeu. 19/juil./2007 14:44
par Anonyme
Code : Tout sélectionner
Structure BGRA
B.c
G.c
R.c
A.c
EndStructure
Procedure RGBA( Red , Green , Blue ,Alpha)
ProcedureReturn RGB ( Blue , Green , Red ) + Alpha << 24
EndProcedure
;Couleur Rouge
C = RGBA(255,0,0,255)
;Pointeur vers la couleur :D
*Color.BGRA = @C
Debug "Rouge="+Str(*Color\R)
Debug "Vert ="+Str(*Color\G)
Debug "Bleu ="+Str(*Color\B)
Debug "Alpha="+Str(*Color\A)
Debug "BGRA=="
Debug PeekL(*Color)
Debug RGBA(255,0,0,255)
Debug "RGB"
Debug RGB(255,0,0)
Debug "RGB ne va pas en dessous de 0, donc impossible en natif de fournir le l'alpha..."
voici un code pour mieux comprendre, si tu ne comprends toujours pas lis ceci :
le format est codé comme ceci :
[ RED = 1 octet ( 8 bits )] [ GREEN = 1 octet ( 8 bits )] [ BLUE = 1 octet ( 8 bits )]
Avec la fonction RGB() tu te promènes dans les points que j'ai representé en dessous :
.... .... ....
tu ne peut allé au dela des points sauf en faisant en décalage de bits
.... .... .... ....
on a rajouté l'alpha 24 bits plus loin.
Publié : jeu. 19/juil./2007 14:48
par Crystal Noir
ouais c'est bien compliqué tout cela. donc si je pige bien c'est comme si on ajoutait un paramètre inexistant à la fonction rgb de base et ce en décalant les bits.
Pour la structure de sprite3D tu la vois ou dans le visualisateur ?
Publié : jeu. 19/juil./2007 15:01
par Anonyme
je suis sous linux, je ne la voit pas.
Publié : jeu. 19/juil./2007 15:26
par Crystal Noir
tu l'as chopé ou alors ?

car sous windows je la vois pas non plus

Publié : jeu. 19/juil./2007 15:36
par Anonyme
sur l'un des forums US ou FR je sais plus.
Publié : jeu. 19/juil./2007 17:46
par Crystal Noir
tiens question à part la version linux 4 marche bien sous linux ?