1

Bon, voilà le pb :
Pour Kirby, g besoin d'un clipping et comme xlib tarde un peu, je v devoir me débrouiller tout seul sad
Pour cela je dispose d'une fonction d'extgraph : void Sprite32_XOR(short x,short y,short h,unsigned long* sprite,void* dest) {     register long           addr = (long)dest+(y<<5)-(y<<1)+((x>>3)&0xfffe);     register unsigned short cnt  = x&15;     register unsigned short ccnt = 32-cnt;     register unsigned long  data;     for (;h;h--,addr+=30) {         data=*sprite++;         *(long*)addr^=(data>>cnt),*(long*)(addr+4)^=(data<<ccnt);     } }
Or tout cela m'est un peu obscur ...
Je sais que l'affichage fonctionne en ligne par ligne ...
Aussi g besoin de savoir ce qui ds ce source représente :
-le x de début
-le x de fin
-le y de début
-le y de fin
Je vous remercie d'avance pour votre aide smile
*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & sabrina

2

enfin je veux dire par ex :
le x d'aff a pour valeur (-10)
je ne doit dc pas commencer l'affichage au 0 du sprite mais au 10 en abscisse (pour que ça ne sorte pas de l'écran)
c un peu confus mé j'espère avoir été assez clair grin
*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & sabrina

3

Le pb, c'est que ces fonctions sont prévues pour un écran de 240*128 pixels.
Comment tu veux faire ton clipping ?

4

je veux juste savoir ce que g demandé
mon idée c ça en fait :
E==écran
S==sprite
      [4]SSSSSSS[/4]
      [4]SS[/4]SSSSSEEEEEEEEEEEEEEEEEEEEEE
      [4]SS[/4]SSSSSEEEEEEEEEEEEEEEEEEEEEE
         EEEEEEEEEEEEEEEEEEEEEEEEEE
         EEEEEEEEEEEEEEEEEEEEEEEEEE
         EEEEEEEEEEEEEEEEEEEEEEEEEE
         EEEEEEEEEEEEEEEEEEEEEEEEEE


là le sprite dépasse de l'écran
au lieu de tout afficher (buuuuuuug), je veux restreindre la fonction à m'afficher le sprite à partir de la première colonne et la premièer ligne qui n'est pas hors-écran ...
et pour fo que je savent où se trouvent ces var ds la fonction ci-dessu ...
*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & sabrina

5

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

6

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 !

7

ça semble lgique comme technique, mais pour afficher l'écran de 304*192, il faut passer par une boucle , non???
Plis fòs ba pengwen là !

mon site: http://www.slubman.info/
partie GP32: http://www.slubman.info/gp32
partie TI: http://www.slubman.info/ti

8

exact, enfin, c'est le seul moyen que j'ai trouvé

9

moi ça doit être rapide, vu qu'en ce moment extgraph est au point mort sad
pour le scrolling vertical c possible sûr dc ?
ça serait au moins ça ...
ou est la var pour la ligne de déb et la var pour la ligne de fin ?
*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & sabrina

10

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é...

11

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

12

Comment ça dans le repère sprite ?confus

13

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.

14

(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.

15

c pas mon code c celui d'extgraph grin

par contre le truc que vous me dîtes ne me paraît pas correspondre à ce que je recherche sad

progman7gray> t'as pas un exemple de code plus simple ? (moi j'y connais rien en fonctions graphiques ... sad)
*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & sabrina

16

progman7gray a écrit :
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:

faux: c le coin supérieur droit, il me semble...

moa j di: vive genlib!....picolgrin
ceci-di, ça mintéresserai aussi de savoir clipper tt seul com un grand.

euh, on peut pa définir un écran virtuel trè grand, style 300*300, afficher le sprite deds n'importe où(avec une limite qd ^m...), et centrer cet écran virt ds l'écran de la calc avec memcpy?(encore faut-il centrer avec memcpy...)
je di peut-être une connerie, ms....
avatar
Attention, nouvelle signature #eeek#
https://mastodon.ti-fr.com/@redangel

17

Ben ouais, c'est ce que j'ai proposé plus haut.

18

si je passe par un gand écran virtuel qu'il faut que ça recentre après ça va être trop lent sad
foque ça affiche direct le sprite ...
*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & sabrina

19

Faudrait demander à PpHd comment fonctionne le clipping dans Genlib et essayer de copier sa technique en C, si c'est possible...

20

Dans GraphX, il est réalisé grâce à un buffer plus grand que la mémoire vidéo, de 32 pixels à gauche, à droite, en haut, en bas.

De cette façon, il suffit de prendre en compte la différence de largeur (64 pixels) dans la routine d'affichage de sprites, ainsi que de faire deux petites additions pour transformer les coordonnées relatives à un écran "normal" en coordonnées pour ce "clipped screen" cool

Et pour l'affichage à l'écran réel, on recopie le centre de ce "clipped screen".
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

21

éh!....grinembarrassedtongue
avatar
Attention, nouvelle signature #eeek#
https://mastodon.ti-fr.com/@redangel

22

?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

23

Thibaut a écrit :
De cette façon, il suffit de prendre en compte la différence de largeur (64 pixels) dans la routine d'affichage de sprites, ainsi que de faire deux petites additions pour transformer les coordonnées relatives à un écran "normal" en coordonnées pour ce "clipped screen" cool


Ca c pour un affichage avec clipping sans avoir un écran plus grand ?
*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & sabrina

24

bon, pour les scrolling vertical g trouvé, je v essayer dès que j'aurais fait ma routine d'affichage du niveau smile
par contre le scrolling horizontal sad
*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & sabrina

25

XLib arrivera dans 3 semaines...
Mais la je doit bosser pour la prepa
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

26

TiMad a écrit :
XLib arrivera dans 3 semaines...


il a reponse a tout grin

Casio a quand meme un certains merite:
ils ont inventé les calculatrices jettables :D.

27

Mais pourkoi se casser la tête kan on a Genlib ?? rotfl top

28

ben tu sais, genlib, quand on est mauvais en anglais...
Casio a quand meme un certains merite:
ils ont inventé les calculatrices jettables :D.

29

il faut suivre les cours d'anglais !!!nonnon
C'est pas bien de jouer à CF en cours!!! grin

30

sinon vark tu peux utiliser des gros buffers mem et tu recopies à l'ecran k'une partie