π
<-

[83PCE] Des Sprites pour le Basic ! (v2)

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

[83PCE] Des Sprites pour le Basic ! (v2)

Messagede grosged » 15 Mai 2016, 19:39

Vous ne trouvez pas que ça serait sympa de pouvoir créer et faire évoluer à l'écran toutes
sortes de Sprites ?...Et tout ça depuis le TI-Basic ! :#roll#:
Hé bien , après vous avoir proposé une modeste routine de Sprites (v1) 10x10 en 16 couleurs
(viewtopic.php?f=12&t=18327),
je vous propose maintenant la version 2 : :D
définition/affichage de sprites 36 couleurs, au format customisable (d' 1x1 jusqu'à 35x35 pixels) agrémentée d'autres fonctions pour effacer/remplir l'écran de la couleur de votre choix,
afficher/redéfinir la palette des 36 couleurs.

Sprite v2 Téléchargeable ici : archives_voir.php?id=539203

Commençons d'abord par l'installation...Transférez simplement ces fichiers :

defpal.8xp
defspr.8xp
affspr.8xp
effecr.8xp (optionnel)
affpal.8xp (optionnel)
PALETTE.8xp (optionnel)

Voici les fonctions dans le détail:

1) DEFPAL permet de définir une palette standard de 36 couleurs (ou d'en redéfinir tout ou partie)

Code: Tout sélectionner
{couleur0,couleur1,couleur2:Asm(prgmDEFPAL
Dans cet exemple, on redéfinit uniquement les 3 premières couleurs de la palette (les 33 couleurs suivantes demeurent standard)

Voici les 256 couleurs disponibles pour redéfinir la palette:
Image(courtesy of Shaun 'Merthsoft' McFall )


Si ce qui précède Asm(prgmDEFPAL s'avère ne pas être une liste...

Code: Tout sélectionner
0:Asm(prgmDEFPAL
ou encore
Code: Tout sélectionner
"":Asm(prgmDEFPAL

Alors rien n'est redéfini : on se contente donc de la palette standard
(dont voici un aperçu: )

Image


2) DEFSPR permet de définir un Sprite et ses dimensions (du format 1x1 jusqu'à 35x35 pixels)
Son numéro, sa largeur et sa hauteur seront mentionnés en entête de cette manière:

Code: Tout sélectionner
"0 C30123456789AB
Ans+"CDEFGHIJKLMN
Ans+"OPQRSTUVWXYZ
Asm(prgmDEFSPR
Le Sprite n°0 est donc au format 12x3 (d'où "0 C3..." à la 1ère ligne)

Petite précision: pour pouvoir spécifier au moyen d'un seul caractère la couleur (entre 0 et 35) de chaque pixel composant le sprite, on étend la notation héxadécimale en allant jusqu'à la dernière lettre de l'alphabet (A=10....Z=35) .

25200 octets (env. 24,6 Ko) sont attribués au stockage des sprites, il y a donc de la marge !
à noter qu'un sprite prend en mémoire (2+largeur*2*hauteur) octets, on peut donc stocker jusqu'à 10 sprites 35x35 :)


3) AFFSPR permet l'affichage d'1 ou plusieurs Sprites.

Code: Tout sélectionner
{0,100,200,1,0,0:Asm(prgmAFFSPR
affichera le sprite n°0 en coordonnées (100,200) ainsi que le sprite n°1 en coordonnées (0,0), c'est-à-dire le coin supérieur gauche de l'écran.

:warning: IMPORTANT :warning: : afin d'éviter de faire planter la TI83PCE, veuillez respecter cet ordre précis:
-d'abord DEFPAL (obligatoire, même si l'on ne veut pas redéfinir!)
-puis DEFSPR (respecter l'ordre croissant : sprite0,sprite1,sprite2...)
-enfin AFFSPR

EFFECR et AFFPAL sont optionnels, ils peuvent être utilisés où et quand vous le souhaitez...


4) EFFECR permet d'effacer/remplir d'une couleur (entre 0 et 35) tout l'écran (au choix parmi la palette)

Code: Tout sélectionner
0:Asm(prgmEFFECR
efface/rempli l'écran au moyen de la couleur 0


5) AFFPAL permet d'afficher à l'écran les 36 couleurs composant la palette en cours (pas de paramètre nécessaire)

Code: Tout sélectionner
Asm(prgmAFFPAL
Pour voir s'afficher également les numéros correspondant à chaque couleur, il vous suffit de lancer le programme PALETTE
Le fichier 36couleurs.jpg joint également, représente la palette standard.

Voilà! J'espère que vous allez bien vous amuser !!! :D
Merci à Epharius, Mateo, PT, DjOmnimaga pour les conseils, astuces, et informations !! 8-)
Dernière édition par grosged le 16 Mai 2016, 15:21, édité 2 fois.
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.2%
 
Messages: 773
Images: 92
Inscription: 14 Sep 2011, 12:29
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: [83PCE] Des Sprites pour le Basic ! (v2)

Messagede Epharius » 15 Mai 2016, 20:18

Super ! Désolé de ne pas t'avoir envoyé de MP pour remplacer RclVarSym mais ça m'avait gonflé d'avoir perdu le message qui était censé être envoyé et que j'avais mis du temps à faire --'

35*35 est une excellente taille : l'utilisateur va avoir de la marge pour d'éventuels gros sprites, et de toute façon, il pourra toujours créer un sprite composé (en créant 2 sprite qu'il met côte à côte). En tout cas, chapeau !

Bref, si t'as besoin d'aide ou si tu es encore intéressé pas le fonctionnement de RclVarSym, n'hésite pas ;)
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
Avatar de l’utilisateur
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 8.9%
 
Messages: 1182
Images: 4
Inscription: 08 Déc 2014, 17:38
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ensimag
GitHub: MathisLav

Re: [83PCE] Des Sprites pour le Basic ! (v2)

Messagede grosged » 15 Mai 2016, 20:26

Merci ! ;)
Au sujet de RclVarSym, vu sa taille, j'avoue que ça m'a un peu calmé, héhé :)
Durant mes quelques tests, j'ai remarqué un effet pas vraiment indésirable:
Après utilisation, lors d'un [2nde]+quitter, on peut parfois voir une trainée en haut de l'écran (juste sous la barre) : c'est parce qu'on vient d'utiliser la zone-mémoire PixelShadow, je pense.
En effet, pour avoir un max de place, j'ai opté pour l'utilisation des 3 zones consécutives de 8400 octets chacunes : PixelShadow,PixelShadow2,cmdPixelShadow
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.2%
 
Messages: 773
Images: 92
Inscription: 14 Sep 2011, 12:29
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: [83PCE] Des Sprites pour le Basic ! (v2)

Messagede Epharius » 15 Mai 2016, 20:33

Bon, c'est pas grave mais il y a surement quelques programmes qui utilisent pxlshadow2 (en tout cas PHASM :p) mais on ne peut pas trop faire autrement. Enfin, y'a toujours la possibilité de mettre ça dans une AppVar mais tu disais que c'était moins rapide ?

Pour les barres, ouais, y'en avait aussi avec PHASM mais premièrement, c'est jute 10 pixels, et deuxièmement, je crois qu'il est possible d'éviter ça en décalant un peu, ça doit venir des premiers bytes de PxlShadow2.
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
Avatar de l’utilisateur
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 8.9%
 
Messages: 1182
Images: 4
Inscription: 08 Déc 2014, 17:38
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ensimag
GitHub: MathisLav

Re: [83PCE] Des Sprites pour le Basic ! (v2)

Messagede Adriweb » 15 Mai 2016, 21:24

C'est du bon boulot !

Tu aurais un gif (animé?) d'un programme exemple/démo ? :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
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 82.1%
 
Messages: 14882
Images: 1211
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [83PCE] Des Sprites pour le Basic ! (v2)

Messagede grosged » 15 Mai 2016, 21:34

Merci Adriweb ;)

Non, je n'ai pas encore fait de démo, et je ne peux malheureusement pas faire de gif animé : je n'ai plus CEmu sur mon pc
(et je me souviens que j'avais galéré avec Wine pour pouvoir l'installer sur Linux)

J'utilise TILP pour faire des screenshots ;)
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.2%
 
Messages: 773
Images: 92
Inscription: 14 Sep 2011, 12:29
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: [83PCE] Des Sprites pour le Basic ! (v2)

Messagede Adriweb » 15 Mai 2016, 21:58

Mais pourquoi ne pas compiler CEmu pour Linux directement ? :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
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 82.1%
 
Messages: 14882
Images: 1211
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [83PCE] Des Sprites pour le Basic ! (v2)

Messagede grosged » 15 Mai 2016, 22:17

hou lààà!.. Je verrai ça quand j'en aurais le courage :)

Sinon, pour booster encore la TI83PCE, je me souviens de l'excellente astuce de DrDnar : faster.8xp ...et encore mieux : fastest.8xp !!!
( archives_voir.php?id=464354&short=1 )
Je viens de tester fastest.8xp , hé bien ça dope la TI83PCE !!!

j'ai fait ce test d'un sprite 35x35 se déplaçant sur toute la largeur de l'écran (par pas d'1 pixel)
Voici les résultats:
-environ 4,2 secondes sans FASTEST
-3 secondes avec FASTEST !!!

Il se pourrait (fortement!) que cette astuce intègre le projet Sprite ;)
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.2%
 
Messages: 773
Images: 92
Inscription: 14 Sep 2011, 12:29
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: [83PCE] Des Sprites pour le Basic ! (v2)

Messagede Dream of Omni » 15 Mai 2016, 23:22

Je viens de recevoir ton message à propos de ce lib et Excellent travail! :)

Je suis content de voir ce lib aboutir en utilitaire élaboré pour les jeux BASIC étendu. Je vais devoir l'essayer pour faire des tests. Comme tu supportes des sprites de toutes sortes de grandeur je me demande si First Fantasy: Mana Force pourrait donc être adapté pour l'utilisation de ce lib? :)


Aussi bonne idée pour les palettes de couleurs. Ça permet de réduire la taille des sprites


EDIT: J'ai écrit un article en anglais à propos du lib: https://codewalr.us/index.php?topic=1350.0
ImageImageImageImageImage
Avatar de l’utilisateur
Dream of OmniPremium
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 33%
 
Messages: 730
Images: 51
Inscription: 21 Fév 2012, 12:04
Localisation: Quebec, Canada
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 11eme annee scolaire termine
YouTube: dreamofomni
Facebook: dreamofomni.page

Re: [83PCE] Des Sprites pour le Basic ! (v2)

Messagede Epharius » 16 Mai 2016, 12:02

Si tu veux je pourrai te faire le gif animé avec le programme test que tu m'as passé ;)

Sinon, fais un peu attention avec FASTEST, tu l'as peut être vu mais il peut engendrer une RAM CLEARED. Mais par contre pour FASTER il ne devrait pas y avoir de problème. Avec l'accord de l'auteur, puisque que le code est très très court, tu pourrais l'intégrer directement dans DEFPAL ou quelque chose du genre.
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
Avatar de l’utilisateur
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 8.9%
 
Messages: 1182
Images: 4
Inscription: 08 Déc 2014, 17:38
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ensimag
GitHub: MathisLav

Suivante

Retourner vers Langages alternatifs

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 8 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Ndless for CX 4.5.5 / CX II 6.2.0
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
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
3829 utilisateurs:
>3810 invités
>12 membres
>7 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)