1

Je cherchais des infos sur les sprites en basic, et voilà que je tombe sur un programme avec plein d'animations sympa... grin
Je trouvais que l'anglais était pas tout à fait correct, et j'ai pensé que c'était un français qui l'avait écrit... De là à comprendre que c'était Syfo-Dias... eek
C'est fou le nombre de programmes de membres du forum qu'on retrouve sur internet!

En fait, notre communauté est pas morte du tout!

2

c'est quoi des "sprites" ?

(merci de pardonner mon ignorance)
avatar
loclamor
Mondo Photo
Le voyage en photo et en 1 clic

3

Les sprites, c'est des images en noir et blanc. (se prononce la boisson)

Si on veut être précis, ces images doivent normalement avoir une taille multiple de 8 (comme ça, leur largeur se comptent en octets), et on ne considère souvent que les images carrées. Dans le cas où elles sont rectangulaires, la hauteur peut être quelconque.

Dès que tu as des graphismes, tu peux avoir des sprites: le vaisseau, la carte, le personnage...
(exemple, pour Mario, l'écran est un matrice de sprites : http://www.ticalc.org/archives/files/fileinfo/271/27160.html )

Les sprites ne sont pas gérées en basic pur, mais tu peux faire comme si avec une série de PxlOn() ou autre, l'ennui c'est que c'est très lent.
C'est pour ça qu'on fait des librairies Asm telles que Xlib, Omnicalc, et CelticIII (éviter la seconde de préférence)
Elles permettent de gérer des images de différentes tailles, à très grande vitesse (Omnicalc = 25 images/s). Ca permet aussi de faire des niveaux de gris au passage.

Et maintenant, si ça t'interesse (parce que moi oui), y'a moyen de faire des sprites en basic pur, à condition de tricher un peu; à l'aide des Plots statistiques, ou du token Text()...
Plus d'informations en suivant le lien: http://www.ticalc.org/archives/files/fileinfo/376/37617.html

4

ha ouais, ok...
c'est interressant, c'est vrai. Je verrais si je m'y interresse plus après la fin du bac tongue
avatar
loclamor
Mondo Photo
Le voyage en photo et en 1 clic

5

Slt ! Vraiment intéressant le doc sur la création de sprites, mais bon je pensais créer la surprise au zContest en utilisant des sprites Text, enfin pas grave ^^. Quelqu'un pourrait me dire ce que veut dire "to hard code" ? Gracias !

6

Je sais pas exactement, mais je dirais que c'est de le coder soi même, pour de bon, avec des 'line()', 'pxlOn()' et autres... Le bordel quoi^^
En tout cas, c'est ce qu'on fait en permanence... smile

7

Ok, effectivement ça doit être ça. Pour les Text sprites, j'ai bien envie d'essayer de trouver des sprites que l'on peut construire sans afficher un caractère par colonne de pixels, mais plutôt un caractère pour 2 colonnes. Les sprites faisables comme ça seraient donc affichés plus rapidement, même si je pense que ça va être dur de faire plein de sprites comme ça.

8

Oui, ça a pas l'air simple... Surtout que certaines sprites ne peuvent déjà pas être faites sous forme de texte, alors tu risques d'en avoir pas mal d'impossibles...

T'aurais pas un programme qui génère tes sprites? Tu peux me filer un lien?

9

Tu veux dire quoi par générer des sprites ? Trouver les caractères à afficher ou juste afficher un sprite Text ? Il y a un programme dans le lien que tu as posté plus haut, qui donne les caractères à utiliser pour un sprite 5*5 je crois. J'ai pas encore compris comment ça fonctionne, c'est hyper bien codé. Sinon j'ai rien d'autre, je fais tout à la main.
Je pense que je ferai une étude complète des text sprites après demain (après le bac ^^), notamment en référençant les combinaisons de pixels possibles, avec les caractères qui correspondent. Ca va être long mais ça (me) sera utile pour la création de sprites : rien que sur une colonne de 5 pixels, il y a déjà 32 possiblités de sprites différents, mais seules peu de combinaisons sont réalisées avec les caractères.
Allez, bac de maths demain !

10

Bonne chance!!!

Ce que je cherche, c'est un programme qui génère le texte.
Et ouaip, il y a un programme dans un de mes liens pour faire ces sprites (6x6), mais il est très incomplet au niveau des caractères possibles, et je voudrais retrouver celui que j'utilisais à l'origine...

Ah, tiens, tu devrais lire ça, ça va t'aider: http://www.ticalc.org/archives/files/fileinfo/145/14542.html
=> Subsection 5.3. Textsprites.

11

Merci, c'est un peu long, mais bon maintenant j'ai toutes les vacs pour ça. Ah aufait je viens de découvrir qu'on pouvait faire des text sprites avec des grands caractères (Text(-1,... ), je ne sais pas pourquoi je croyais ça impossible.


J'ai réfléchi à un programme d'affichage de text sprites, dis moi si tu penses que c'est trog long :

On veut afficher le sprite "ABCD", mais que les 2 premières colonnes du "C" soient affichées (et pas juste la première).
Donc enfait ça serait une boucle d'affichage classique, mais pour chaque caractère le programme se réfère à une liste (par exemple) qui lui donne le nombre de colonnes affichées.

A mon avis dans cet exemple ce sera plus long que de faire un autre caractère à la place de la 2e colonne du "C", mais il y a peut-être des cas où c'est utile.


Autre chose : je crois qu'on utilise souvent les text sprites gauche->droite, mais plus rarement ceux haut->bas , pourtant ça marche aussi.


A aufait, maintenant que j'ai compris le doc spritesandmaps du lien plus haut :

Je pense vraiment que l'utilisation de text sprites va révolutionner mes ambitions en basic. J'ai testé Donut Quest, c'est un bon jeu, mais le nombre de tests à effectuer à chaque déplacement esy trop grand, du fait du trop grand nombre de types d'objets (mur,caisse,donut,donut gelé,eau).
D'ailleurs je vais reprendre mon projet d'un sokoban, que je voulais faire avant avec xLib. Je commencerai par une version avec peu d'objets (mur, caisse, dalle). Ca va me permettre d'appliquer toutes mes idées pour zipper les maps (matrices).

Enfait le problème avec les text sprites, c'est qu'on peut faire des affichages très rapides, mais par contre il faut pouvoir suivre une même règle générale pour l'affichage de tous les sprites, sinon c'est trop long.

Pour les "statisical maps and sprites", j'ai été vraiment déçu, tu parles d'un scroll ^^. C'est vraiment trop lent.


Ah zut je parle trop com dab, c'est les reflux du bac.

12

Ca c'est bien passé ton épreuve?

Je pense que le fait de rajouter une liste rendrait tes sprites beaucoup plus lentes... Et puis, les sprites de 1 colonne s'affichent de façon régulière, alors que ce serait pas le cas si tu rajoutais une liste.
Par contre, les sprites en grand caractères, ça peut être très bien, faudrait faire des tests!
Et les sprites dans le sens vertical, tu as un problème aussi, c'est la largeur... Les tokens affichés ont tous une largeur différente. En soi, si on les choisit bien, ça ne pose pas de problèmes. Mais bon, tu feras pas quelque chose d'aussi performant que les text sprites normales, parce que elles permettent d'afficher 6 pixels en une fois. Alors, qu'en vertical, tu as difficilement des tokens de 6 ou plus de pixels de long qui présentent toutes les combinaisons possibles.

Franchement, les plots statistiques, c'est super rapide^^ C'est juste que le programme qu'il fournit est bidon. Tu ne peux pas faire de scroll avec, parce que la meilleure utilisation à en faire, c'est de les afficher une seule fois. Genre, tu fais les décors comme ça, à chaque fois que tu changes de pièce, dans un Zelda,ça peut être pas mal.
Après, faut faire sans, parce que sinon, faut retracer tout le graphe...

13

Tu aurais pas un exemple de prog où les stats sprites seraient bien mis en valeur ?
A mon avis les stats sprites sont utiles lorqu'il y a peu ou pas de répétitions de sprites à créer, sinon il faut faire des listes énormes pour rien, aves les coordonnées de chaque pixel. Les text sprites sont utiles lorqu'il y a répétition de sprites, il suffit alors de stocker les coordonnées des sprites.

Pour les text sprites haut-bas, je pensais enfait à la création d'un sprite en faisant une première ligne gauche-droite, puis en dessous une 2e, etc...

Bon allez je vais commencer mon référencement des caractères, mais je sais pas sous quel forme je vais le faire.

Oué, j'ai assuré le bac, pas trop difficile. Enfin j'attends quand même les résultats avant de faire la fête, on sait jamais...

14

Voilà j'ai commencé mon étude sur les text sprites :

J'ai référencé en tout 175 caractères différents (sur l'écran graphique). Sur les 64 combinaisons de pixels (sur une colonne de 6) possibles, il n'y en a que 39 réalisées, soit 61%.

Je pense que je vais créer un programme pour trouver la chaîne à utiliser à partir d'un sprite. Pour ça, j'attribue à chaque combinaison de pixels un numéro :

colonne de 6 pixels -> nombre binaire à 6 chiffres -> nombre décimal +1 (pour éviter le bug du 0)

Bon allez maintenant il me rest à déterminer pour chaque combinaison le caractère idéal à utiliser, en fonction de sa taille en largeur, et parmi ceux qui restent, celui qui a le moins de pixels à droite (pour éviter qu'on voit trop le caractère lors de l'affichage du sprite).

Ah oui j'ai regardé un peu les grands caractères, il font 8 pixels de haut.

15

T'as essayé quoi comme caractères? Maj, min, caractères spéciaux?

Tiens, j'y avais pas pensé, mais pour enlever ta sprite, tu pourras pas le faire avec du texte (sauf en effaçant celle en dessous)

16

oQnQ

Voilà tous les caractères de la TI au cas où ça peux vous servir smile

17

J'ai testé tous les caractères possibles (enfin je crois). Je ferai sans doute le programme ce soir.
Oui, c'est un inconvénient. Pour enlever un sprite, il faut réafficher celui en dessous. En même temps, on affiche rarement un sprite sur un autre, puisque la ligne de pixels du haut est souvent blanche, et à droite il faut effacer les caractères qui dépassent. Le sprite du dessus serait donc dans un rectangle blanc, sur le sprite du dessous.
Si on affiche un sprite avec du texte, on ne peut pas l'enlever avec autre chose (à moins de retenir, en plus des caractères à utiliser, les coordonnées de chaque pixel).

Concernant les stats, on peut créer plus de 3 "Plots" ?

18

Ah merci pour les caractères, mais tu sais comment on peut les afficher ? Certains ne sont accessibles ni sur la TI, ni sur TIPE.

19

20

Merci je vais regarder tout ça, mais je comme je me restreint à ne pas utiliser directement de l'asm, il faudra que je trouve un prog qui permettent d'avoir ces caractères spéciaux dans une chaîne de caractères.

21

Celui-ci est entièrement en TI-Basic et éditable sous TI-Graph Link : http://www.ticalc.org/archives/files/fileinfo/167/16732.html smile

22

Merci, j'ai pu récupérer des caractères que je n'avais pas. Mais ça n'existe pas tout simplement un programme qui donne la chaîne de tous les caractères possibles ? Je cherche.

23

Raaa j'arrive pas à trouver un prog qui donne tous les caractères ascii dans une chaîne (j'en ai trouvé qu'un seul, et il ne permet que de les afficher). C'est pourtant pas compliqué ?

24

Ça doit être possible en ASM mais je n'ai aucune idée de comment stocker ça dans une chaine.

25

Bah utilise un des progs qui donnent des caracteres grace a l'asm, et stocke les au fur et a mesure dans une chaine, pour au final tous les avoir dans une chaine, et dans laquelle tu piochera au fur et a mesure de tes besoins. Ce qui est pratique avec les caracteres speciaux, c'est qu'une fois ecris dans un programme ils y restent meme en passant d'une calc a l'autre.

C'est qu'avait un pote (Conan), il les avait recupere, et mis dans un prog basic qui ressortait le caractere que l'on voulait sous forme de chaine grace a un simple sub(). Mais je n'ai plus ce prog sous la main.


(au fait, merci pour ce cours instant de nostalgie gon33, c'est fou ce que j'ecrivais mal l'anglais a l'epoque xD)

26

Ben effectivement ça a l'air simple, mais je ne connais rien à l'asm. Est-ce que ça serait possible que quelqu'un réalise ce programme ? Un prog qui permette le stockage dans une chaîne de tous les caractères possibles.

27

Baruch (./17) :
Concernant les stats, on peut créer plus de 3 "Plots" ?

Non, on peut pas faire plus que ça... Mais un seul permet d'afficher plusieurs sprites.

Concernant tes caractères, certains ne sont tout simplement pas disponibles en basic.
Quand à l'image contenant tous les caractères (elle vient de AsmIn28Days, je dirais grin ), Eh bien j'ai un caractère qu'elle ne contient pas^^
Je vous l'envoie si vs voulez (je sais pas si il passe le cable), c'est un Béta particulier, je l'ai chopé grâce à Symbolic et l'un de ses bugs divers, mais je sais pas si il est dispo si je supprime l'apps.

28

Non elle viens de l'archive de TI-Doc grin (mais normalement la totalité des caractères y sont présents, t'es sur que c'est simplement une sprite ?
Baruch (./26) :
Est-ce que ça serait possible que quelqu'un réalise ce programme ? Un prog qui permette le stockage dans une chaîne de tous les caractères possibles.

Ça me semble réalisable mais il me faudrait quelques info sur les rom calls des chaines, j'vais voir sur WikiTI.

29

Merci ça serait vraiment sympa !

30

J'ai commencé à coder quelques trucs mais pour l'instant le programme doit (ou devrait) normalement récupérer la valeur de la variable Y et placer dans Str0 le caractère correspondant à celle-ci. Et là ça me copie que le caractère '?' dedans, donc je vais essayer de voir pourquoi...