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.
Aujourd'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.
La bibliothèque graphique Sprites de Grosged fournit plusieurs outils permettant d'afficher rapidement des sprites entre autres.
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 !
- 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 !
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.
- 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.
- TI-Connect CE ne fait pas mieux, et les captures d'écran sont donc à oublier.
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) !
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 :