Bonjour,
Dans mon projet, pour afficher les attaques, j'ai d'abord utilisé gfx_RotatedTransparentSprite_NoClip dans la fonction draw_attacks dans game.c. Ensuite, j'ai agrandi la tilemap (au début elle avait la taille de l'écran) et j'ai du enlever le _NoClip de plusieurs fonctions pour que les sprites s'affichent correctement. Malheuresement, je n'ai pas trouvé de fonction gfx_RotatedTransparentSprite (avec clipping), j'ai donc du changer le code d'apparition des attaques dans attacks.c en utilisant gfx_RotateSprite. Ca avait l'air de marcher mais assez souvent les sprites s'affichaient très bizarrement, j'ai donc du changer le code d'allocation de mémoire et donner une taille plus grande que celle du sprite (normalement 20x20, dans le code 28x28) pour que ça s'affiche correctement, mais après ça les sprites avaient un décalage, leur rotation est devenue incorrecte (direction vers un ennemi plus loin alors que le joueur est plus proche et qu'il a attendu d'être dans sa LOS pour tirer... Je ne sais plus quoi faire... Mais je pense que ce serait plus simple qu'il y ait une fonction gfx_RotatedTransparentSprite, ou peut être est-ce une erreur dans mon code?
Fonction clipping inexistante
5 posts
• Page 1 of 1

Fonction clipping inexistante
You do not have the required permissions to view the files attached to this post.
Last edited by noelnadal on 18 Mar 2025, 09:58, edited 1 time in total.
Reason: titre
Reason: titre
-
elyas.creates
Niveau 5: MO (Membre Overclocké)- Posts: 9
- Joined: 18 Sep 2024, 16:07
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Fontcion clipping inexistante
Il y a un paragraphe clair dans la doc de graphx sur la différence clip et noclip et quand les utiliser ou non (il est probable que si ton jeu a besoin de noclip pour fonctionner correctement, ce n'est pas que tu cherches juste a optimiser en perf, mais que tu fais quelque chose de pas correct en premier lieu) : https://ce-programming.github.io/toolch ... -unclipped
Cette page d'ailleurs te liste toutes les fonctions disponibles, pas besoin de deviner si une existe ou non
et puis si une variante noclip ou non n'existe pas c'est pas un hasard non plus, disons.
Cette page d'ailleurs te liste toutes les fonctions disponibles, pas besoin de deviner si une existe ou non

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14812
- Images: 1131
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb

Re: Fontcion clipping inexistante
Je ne comprend pas trop, les attaques ont une grande chance de pouvoir s'afficher hors de l'écran, et c'est parce que la fonction n'existe pas que j'ai posté ce message, et en premier lieu je n'avais pas vraiment utilisé toutes ces allocations de mémoire, mais maintenant que la map est plus grande et que les attaques peuvent aller en dehors de l'écran, je me suis dit qu'il fallait utiliser une fonction avec clipping (sans _NoClip), donc d'après ce que tu as dit, je devrait utiliser la fonction avec _NoClip? Mais sans clipping les attaques s'affichent bizarrement (se retrouvent de l'autre coté de l'écran, par exemple.
-
elyas.creates
Niveau 5: MO (Membre Overclocké)- Posts: 9
- Joined: 18 Sep 2024, 16:07
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Fontcion clipping inexistante
L'écran est une zone mémoire contiguë. Du coup c'est normal que quand quelque chose "dépasse" à droite ça continue à gauche après. Le problème est qu'avant (et après) la zone mémoire (VRAM) pour l'écran, si tu utilises le _NoClip ça ne va pas vérifier la zone mémoire écrite et donc tu peux overwriter des choses du système en ram ce qui peut donner des corruptions, crashs, etc. (En l'occurrence si tu ne fais pas de double buffering (cela dit c'est une bonne idée de le faire), la 2eme partie de la vram sera "libre" et donc si tu dépasses un peu hors de la première ça ne fera pas de mal...
Ce qu'il faudrait vraiment faire plutôt c'est de ne jamais tomber dans des situations où tu te retrouves avec des choses qui soient potentiellement plus grande que la zone écran. Au moins, noclip ou pas, il n'y aura pas de problème. Ça veut par exemple dire que si un personnage s'approche d'un côté de l'écran, soit il est bloqué (mur et ), soit il "passe sur un autre écran" et se retrouve donc téléporte de l'autre côté de la map avec la nouvelle zone de dessinee.
Mais ça peut être "smooth" aussi, il y a des exemples de tilemap dans la toolchain ou le changement se fait petit à petit et non écran par écran.
Ce qu'il faudrait vraiment faire plutôt c'est de ne jamais tomber dans des situations où tu te retrouves avec des choses qui soient potentiellement plus grande que la zone écran. Au moins, noclip ou pas, il n'y aura pas de problème. Ça veut par exemple dire que si un personnage s'approche d'un côté de l'écran, soit il est bloqué (mur et ), soit il "passe sur un autre écran" et se retrouve donc téléporte de l'autre côté de la map avec la nouvelle zone de dessinee.
Mais ça peut être "smooth" aussi, il y a des exemples de tilemap dans la toolchain ou le changement se fait petit à petit et non écran par écran.
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14812
- Images: 1131
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb

Re: Fonction clipping inexistante
Comme la tilemap bouge en fonction du déplacement du joueur (toujours centré sauf s'il s'approche des bords, je pense comme Zelda), il faut que je fasse le clipping moi même, c'est ça? Et le double buffering, c'est bien avec gfx_SwapDraw, comme je le fais dans mon code? Donc en gros je supprime juste la partie d'allocation de mémoire avec gfx_rotate sprite (comme avant) et j'utilise gfx_RotatedTransparentSprite_NoClip mais je fais le clipping moi même?
-
elyas.creates
Niveau 5: MO (Membre Overclocké)- Posts: 9
- Joined: 18 Sep 2024, 16:07
- Gender:
- Calculator(s):→ MyCalcs profile
5 posts
• Page 1 of 1
Return to Langages alternatifs
Who is online
Users browsing this forum: No registered users and 1 guest