π
<-

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

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

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

Unread postby grosged » 15 May 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: Select all
{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: Select all
0:Asm(prgmDEFPAL
ou encore
Code: Select all
"":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: Select all
"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: Select all
{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: Select all
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: Select all
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-)
Last edited by grosged on 16 May 2016, 15:21, edited 2 times in total.
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 30.2%
 
Posts: 770
Images: 75
Joined: 14 Sep 2011, 12:29
Gender: Not specified
Calculator(s):
MyCalcs profile

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

Unread postby Epharius » 15 May 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
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.7%
 
Posts: 1172
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

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

Unread postby grosged » 15 May 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
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 30.2%
 
Posts: 770
Images: 75
Joined: 14 Sep 2011, 12:29
Gender: Not specified
Calculator(s):
MyCalcs profile

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

Unread postby Epharius » 15 May 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
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.7%
 
Posts: 1172
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

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

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

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

Unread postby grosged » 15 May 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 ;)
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 30.2%
 
Posts: 770
Images: 75
Joined: 14 Sep 2011, 12:29
Gender: Not specified
Calculator(s):
MyCalcs profile

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

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

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

Unread postby grosged » 15 May 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 ;)
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 30.2%
 
Posts: 770
Images: 75
Joined: 14 Sep 2011, 12:29
Gender: Not specified
Calculator(s):
MyCalcs profile

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

Unread postby DoOmnimaga » 15 May 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
ImageImageImageImage
User avatar
DoOmnimagaPremium
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 25%
 
Posts: 709
Images: 51
Joined: 21 Feb 2012, 12:04
Location: Quebec, Canada
Gender: Male
Calculator(s):
MyCalcs profile
Class: 11eme annee scolaire termine
YouTube: DJOmnimaga
Facebook: dreamofomnimaga.page

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

Unread postby Epharius » 16 May 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
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.7%
 
Posts: 1172
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Next

Return to Langages alternatifs

Who is online

Users browsing this forum: ClaudeBot [spider] and 2 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.
957 utilisateurs:
>917 invités
>31 membres
>9 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)