π
<-

GraphX - Dessiner un sprite avec une échelle < 100%

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

GraphX - Dessiner un sprite avec une échelle < 100%

Unread postby Yobio » 15 Oct 2022, 12:05

Bonjour, je développe actuellement un jeu en c pour :32ti83pce: mais j'ai besoin de pouvoir dessiner un sprite transparent avec une mise à l'échelle inférieure à 100% (plus petit que sa taille originale).

La fonction gfx_RotatedScaledTransparentSprite_NoClip de la lib graphx permet de dessiner un sprite transparent dont l'échelle peut être inférieure à 64 (64 correspond ici à 100%). Cependant mon sprite est rectangulaire et la fonction n'accepte que des sprites dont les dimensions sont un carré (sprite->width=sprite->height).
Il y a aussi la fonction gfx_ScaledTransparentSprite_NoClip, mais celle-ci prend une échelle entière qui ne peut qu'être agrandie (1 correspond à 100%, 2 à 200%, etc. mais 0.5 ne fonctionne pas car ça doit être un int).

Je pourrais redessiner mon sprite avec une marge pour faire un carré mais j'aimerais optimiser le stockage dans la rom.
Faut-il que j'ajoute cette marge au début du programme et ainsi stocker le sprite redimensionné seulement lors de l'exécution ? (le problème c'est que je ne sais pas comment agrandir les dimensions du sprite sans agrandir son image)
Sinon y a-t-il une autre fonction permettant cela ou un autre moyen ?

Merci pour votre aide !
User avatar
Yobio
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 68%
 
Posts: 13
Joined: 20 Nov 2021, 13:26
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2nde

Re: GraphX - Dessiner un sprite avec une échelle < 100%

Unread postby Adriweb » 15 Oct 2022, 14:20

Salut,

J'ai forwardé ta question sur le canal "officiel" de de la toolchain CE, #ez80-dev (sur IRC EFNet, ou sur Discord), et Runer112 a répondu:

14:32:42 <@Runer112> if they want to repeatedly draw the sprite at this size, they should use gfx_ScaleSprite to scale the sprite data once and then just draw it using unscaled sprite functions
15:05:08 <@Runer112> unfortunately it doesn't look like there's any way to directly draw a non-integer scaled non-square sprite, as they discovered

Si tu parles anglais, n'hésite pas à rejoindre le canal, d'ailleurs :)

Si non... une traduction rapide de ses messages, c'est que si tu veux dessiner à plusieurs reprises le sprite à cette taille, tu dois utiliser gfx_ScaleSprite pour scale les données du sprite une fois, puis juste les dessiner à l'aide de fonctions de sprite non-scaled. Malheureusement, il ne semble pas y avoir de moyen de dessiner directement un sprite non carré à l'échelle non entière, comme tu as pu le voir.

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.7%
 
Posts: 14817
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: GraphX - Dessiner un sprite avec une échelle < 100%

Unread postby Yobio » 15 Oct 2022, 15:33

Merci beaucoup ! Je pense que je vais faire gfx_ScaleSprite à chaque frame (peut-être pas une bonne idée :mmm: ). Sinon j'essaierai de modifier directement la matrice de l'image.
J'irai voir le canal irc, merci pour le conseil :)
User avatar
Yobio
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 68%
 
Posts: 13
Joined: 20 Nov 2021, 13:26
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2nde

Re: GraphX - Dessiner un sprite avec une échelle < 100%

Unread postby Adriweb » 15 Oct 2022, 15:52

Non, il vaut mieux le faire qu'une seule fois, pourquoi voudrais-tu le faire a chaque frame? :P

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.7%
 
Posts: 14817
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: GraphX - Dessiner un sprite avec une échelle < 100%

Unread postby Yobio » 15 Oct 2022, 16:09

C'est pour faire un objet qui se rapproche, donc avec la perspective il faut recalculer l'image à chaque frame non ? Je ne peux pas créer 64 buffers pour stocker chaque sprite pour chaque échelle entre 1 et 64 car ce serait probablement trop lourd.
User avatar
Yobio
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 68%
 
Posts: 13
Joined: 20 Nov 2021, 13:26
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2nde

Re: GraphX - Dessiner un sprite avec une échelle < 100%

Unread postby Adriweb » 15 Oct 2022, 16:14

Ah, je n'avais pas cette information là.
Ca serait quand même dommage de devoir faire autant de calcul lors du dessin... A mon avis il vaut mieux moins optimiser la place (on en a assez sur CE...) et faire des sprites carrés pour ensuite pouvoir utiliser gfx_RotatedScaledTransparentSprite_NoClip. Mais bon, à toi de tester plusieurs solution selon l'impact sur la taille et la performance, pour voir ce qui est acceptable en fin de compte.

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.7%
 
Posts: 14817
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: GraphX - Dessiner un sprite avec une échelle < 100%

Unread postby Yobio » 15 Oct 2022, 16:27

Oui je pense aussi que ça réduirait beaucoup la performance donc en attendant je vais faire des sprites carrés et je verrais plus tard si ça peut s'optimiser.
User avatar
Yobio
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 68%
 
Posts: 13
Joined: 20 Nov 2021, 13:26
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2nde


Return to Langages alternatifs

Who is online

Users browsing this forum: ClaudeBot [spider] and 6 guests

-
Search
-
Social TI-Planet
-
Featured topics
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 !
1234
-
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.
1100 utilisateurs:
>1073 invités
>21 membres
>6 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)