Aller au contenu

sys et require

sys : le système

sys.frame() → n

Le compteur de trames. C'est de lui que se cadence tout ce qui n'est pas une animation d'acteur.

sys.ticks() → ms / sys.ticks_us() → µs

frame * 1000 / 60 et frame * 16667. Dérivés du compteur de trames, jamais de l'horloge murale : une partie doit se rejouer à l'identique (voir les règles).

sys.sin(angle) → Q16.16 / sys.cos(angle) → Q16.16

Sinus et cosinus entiers, sur une table de quart de tour figée. L'angle est un entier en 1024èmes de tour (sys.TOUR) et il boucle : pas de π, pas de radians, donc aucune réduction d'argument où deux plateformes puissent diverger. sys.sin(256) vaut 65534, soit 0,99997.

sys.score(n)

Annonce le score courant. C'est ce que le vérificateur lit après avoir rejoué une trace. Un appel explicite plutôt qu'un global lu en douce : ça définit un moment et une valeur, et le jeu garde son local score.

sys.bg_lost() → booléen

Sur la carte, true une fois après un redémarrage de RP3 : sa carte du fond est vide, le programme repeint ce qu'il y avait écrit. Dans le simulateur, toujours false.

Sur la carte seulement

sys.sd(), sys.exit, sys.serial(), sys.wifi() (l'état du réseau, en lecture), sys.json(texte) (du JSON en table Lua). Le système — lancer un jeu, programmer les NOR, appairer une manette, choisir le réseau Wi-Fi — n'est pas dans l'API d'un jeu : ces fonctions n'existent que pour le dashboard de la console.

require

require(nom) → valeur

Charge nom.lua depuis le dossier du jeu, une seule fois. Ce n'est pas le require de Lua : ni package.path, ni chargeur C, ni chemin — un nom plat en minuscules ([a-z0-9_-]+, jamais un nom réservé de Windows comme con ou lpt1), tout /, .. ou majuscule étant une erreur. C'est la règle de la carte micro-SD de la console (FAT32 ne distingue pas la casse), la même que dans l'App. Les cycles sont détectés.

Le point d'entrée d'un jeu est main.lua, toujours : ce n'est pas un réglage.