Page 1 sur 1

1000 Bornes SE, plus rapide avec la bibliothèque Sprites !

Message non luPosté: 11 Nov 2016, 12:17
de critor
Dans un article précédent nous te sortions le jeu 1000 Bornes pour ta TI-83 Premium CE.
Ce jeu programmé en langage Basic pur souffrait d'un défaut, l'affichage de chaque sprite (image) de carte pouvant prendre point par point plusieurs secondes, malgré plusieurs astuces spécifiques ayant permis d'optimiser la chose.

7497Aujourd'hui nous te sortons 1000 Bornes SE.
De son nom complet 1000 Bornes Sprites Edition, cette version corrige ce problème en utilisant la bibliothèque graphique Sprites de Grosged. :bj:



La bibliothèque graphique Sprites de Grosged fournit plusieurs outils permettant d'afficher rapidement des sprites entre autres. :bj:
Elle passe l'écran de la calculatrice du mode 16-bits au mode 8-bits, qui permet de libérer la 2ème moitié alors invisible du buffer écran et d'y disposer donc de 75Kio (320x240=76800 octets). :)
Et l'astuce est justement d'utiliser cette zone libérée pour la définition et le stockage des sprites qui pourront par la suite être affichés aux endroits choisis dans la 1ère moitié du buffer écran. ;)

Outre la désormais grande rapidité, la bibliothèque Sprites apporte nombre d'avantages :
  • l'avantage de pouvoir afficher en plein écran 320x240 pixels, au lieu d'être limité à la zone graphique 265x165 pixels ! :bj:
  • Outre les sprites, elle permet également de tracer des rectangles de couleur là où aucune instruction équivalente n'existe en TI-Basic, ce qui nécessitait donc une boucle d'instructions Ligne(.
  • Une autre possibilité remarquable, est celle d'afficher du texte. Et contrairement au langage TI-Basic on contrôle ici indépendemment les zooms horizontaux et verticaux, ainsi que les couleurs de police et de fond avec 256 possibilités différentes à chaque fois ! :bj:

Programmer avec la bibliothèque graphique Sprites n'a toutefois pas que des avantages, et nombre d'habitudes devront changer :
  • Le mode 8-bits limite le nombre de couleurs affichables à 28=256 au lieu de 216=65536.
    Un détail bien souvent négligeable... sauf si tu avais dans l'idée de faire des dégradés de couleur.
  • Les instructions d'affichage du TI-Basic ne gèrent pas du tout le mode 8-bits, et ne peuvent donc plus être utilisées à compter de l'activation de la bibliothèque dans un programme : absolument tous les affichages devront donc être réalisés avec la bibliothèque, jusqu'à sa désactivation.
  • En cas d'erreur dans un programme, ce dernier redonne la main à l'OS dont l'affichage sera alors illisible, jusqu'à extinction+rallumage de la calculatrice, faisant perdre les informations sur la localisation de l'erreur. :mj:
  • L'émulateur TI-SmartView CE ne gère pas du tout le mode 8-bits, et ne permettra pas de tester les programmes en question. :mj:
  • TI-Connect CE ne fait pas mieux, et les captures d'écran sont donc à oublier. :mj:
Toutefois, notons que l'émulateur communautaire CEmu gère lui correctement le mode 8-bits et permet de pallier à ces 3 derniers inconvénients. :bj:



Les sprites sont définies dans nos programmes TI-Basic pixel par pixel, à l'aide de simples chaînes de caractères.
Leur nombre n'est pas limité autrement que par la mémoire, mais elles ne peuvent dépasser les 35x35 pixels, ce qui nous a amenés à utiliser divers astuces ici, les cartes du jeu étant plus grandes.

Signalons l'utilitaire TI-83 Plus Sprites Ripper de Ricsan pour Windows qui t'automatisera grandement cette phase à partir du découpage d'une image tilemap (grille de sprites) ! :bj:
Mais il a également le défaut de ne traiter qu'au plus 16 sprites à la fois, nombre légèrement dépassé ici.
Il en existe également une nouvelle version disponible ci-dessous, mais que personnellement je trouve beaucoup moins intuitive à utiliser.



Téléchargements :

Re: 1000 Bornes SE, plus rapide avec la bibliothèque Sprites

Message non luPosté: 11 Nov 2016, 17:06
de grosged
Beau travail, Critor ! Merci d'avoir porté cet intérêt à la bibliothèque Sprites ;)
Je suis ravi d'avoir -indirectement- participé à ce chouette projet :D

Re: 1000 Bornes SE, plus rapide avec la bibliothèque Sprites

Message non luPosté: 12 Nov 2016, 00:18
de DoOmnimaga
Je suis content de voir de nouveaux programmes utilisant la librairie Sprites :), surtout depuis la sortie de Sprite Ripper :)

Re: 1000 Bornes SE, plus rapide avec la bibliothèque Sprites

Message non luPosté: 15 Nov 2016, 13:28
de Ti64CLi++
Vivement de bon jeu comme mario bros grâce à le librairie Sprites ;)
En tout cas, bon travail critor :bj: