π
<-

Fonction clipping inexistante

Assembleur, Axe, C/C++, ICE...

Fonction clipping inexistante

Unread postby elyas.creates » Today, 08:57

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?
BrawlCE.zip
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
User avatar
elyas.creates
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 16%
 
Posts: 9
Joined: 18 Sep 2024, 16:07
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Fontcion clipping inexistante

Unread postby Adriweb » Today, 09:22

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.

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
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.6%
 
Posts: 14812
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Fontcion clipping inexistante

Unread postby elyas.creates » Today, 09:43

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.
User avatar
elyas.creates
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 16%
 
Posts: 9
Joined: 18 Sep 2024, 16:07
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Fontcion clipping inexistante

Unread postby Adriweb » Today, 09:58

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.

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
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.6%
 
Posts: 14812
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Fonction clipping inexistante

Unread postby elyas.creates » Today, 10:07

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?
User avatar
elyas.creates
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 16%
 
Posts: 9
Joined: 18 Sep 2024, 16:07
Gender: Not specified
Calculator(s):
MyCalcs profile


Return to Langages alternatifs

Who is online

Users browsing this forum: No registered users and 0 guests

-
Search
-
Social TI-Planet
-
Featured topics
Grand Concours 2024-2025 - Programmation Python
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
981 utilisateurs:
>958 invités
>16 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)