Le pb, c'est que ces fonctions sont prévues pour un écran de 240*128 pixels.
Comment tu veux faire ton clipping ?
Tu peux définir une structure SCR_RECT et quand les coordonnées du sprites place une parti de celui ci hors de la zone définie pas SCR_RECT tu les affiches pas
jackiechan Le 01/06/2002 à 20:55Edité par Boo le 01/06/2002 à 20:57 Le pb, c'est que la fonction recopie le sprite ligne par ligne, donc à la limite pour ne pas afficher les lignes qui dépassent, pas de prob, mais pour les colonnes, je sais pas trop comment tu pourais faire pour ne pas afficher certaines colonnes.
Moi, je vois plusieurs techniques : une que j'ai utilisée, donc je t'avoue qu'elle n'est pas très rapide, mais si c'est juste pour attendre X, tu n'as qu'à faire ça : tu modifies la fonciton d'extgraph pour qu'elle affiche le sprite sur un écran de (240+64)*(128+64)=304*192, puis tu ne recopies que le milieu de l'ércan sur ton vrai écran de 240*128
Soit (c'est une technique qui me vient de Nerick, donc je ne connais pas sa rapidité), tu décales de qq bits vers la gauche où la droite les sprites des côtés et tu affiches celles du milieu normalement. Normalement, rien ne doit dépasser de l'écran.
Houlà !
Je viens de me relire et c'est pas très compréhensible, bon courage !
ça semble lgique comme technique, mais pour afficher l'écran de 304*192, il faut passer par une boucle , non???
jackiechan Le 01/06/2002 à 20:58Edité par Boo le 01/06/2002 à 20:59 exact, enfin, c'est le seul moyen que j'ai trouvé
la var de début est Y.
Mais si tu veux afficher ton sprite aux coordonnées 3,-5, tu peux appeler par exemple la fonction d'affichage de d'extgraph de cette façon : Sprit32_XOR(3,0,32-5,sprt+5,0x4C00);
(en supposant que ton sprt est un tableau de long)
Au fait, je suis pas sûr de ça, je n'ai jamais essayé...
Vark Le 01/06/2002 à 21:10 y c ds le rpère écran
moi je veux les coordonnées ds le repère sprite ...
*** Ne sous-estimez pas la puissance de la Marmotte ***
©
Marmotte Team : LaMarmotte, sBibi, Vark & sabrina
Sprite32_XOR(short x,short y,short h,unsigned long* sprite,void* dest)
bon ben ca c pour afficher le sprite non? au coordonné x, y (coin inf. droit je crois...)
tu vas devoir jouer sur ca pour modifier la posission fin du sprite:
(long)dest+(y<<5)-(y<<1)+((x>>3)&;0xfffe);
enfin je croit, parce que ton code est bizzard, y a beaucoup plus simple...
Casio a quand meme un certains merite:
ils ont inventé les calculatrices jettables :D.
jackiechan Le 01/06/2002 à 21:20Edité par Boo le 01/06/2002 à 21:40 (y<<5)-(y<<1)+(x>>3) <=> y*30+x/8
Ça permet de savoir à quel octet (par rapport à l'adresse du début de l'écran) commencer à recopier le sprite.
Ben ouais, c'est ce que j'ai proposé plus haut.
Faudrait demander à PpHd comment fonctionne le clipping dans Genlib et essayer de copier sa technique en C, si c'est possible...
TiMad Le 02/06/2002 à 14:46 XLib arrivera dans 3 semaines...
Mais la je doit bosser pour la prepa
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!
ben tu sais, genlib, quand on est mauvais en anglais...
Casio a quand meme un certains merite:
ils ont inventé les calculatrices jettables :D.
sinon vark tu peux utiliser des gros buffers mem et tu recopies à l'ecran k'une partie