[Aide] Renommage des fonctions lua
Posté le 03/05/2011 17:54
Bonjour,
je pense que les fonctions que j'ai écrites pour le lua g100 ont des utilisations et des noms pas assez instinctifs.
Pourriez vous m'aider à les améliorer? (même si vous n'avez pas de g100)
Voici une liste des fonctions de la librairie g (pour graph (je peut aussi renommer) ):
Mode Couleur et Noir et blanc:
misc (plusieurs petites fonctions)
math (calcul de exp ou ln ou racine)
wait (attends le temps indiqué)
random (renvoi un nombre aléatoire dans les limites données)
Mode Noir et blanc seulement:
print (affiche à l'écran)
curseur (change ou va écrire print)
tstpixel (teste un pixel)
pixl (dessine un pixel)
ligne (trace un ligne en noir)
picture (permet d'utiliser les pictures)
copypage
Mode Couleur uniquement:
setcolor (active le mode couleur)
letter (affiche aux coord x,y)
pixl (dessine un pixel)
ligne (dessine une ligne ou un rectangle selon les paramètres)
tstpixel (teste un pixel)
fill (remplit l'ecran d'une couleur)
fonctions qui ne sont pas dans une librairie:
key (teste une touche)
clear (efface l'écran)
int (renvoi la partie entière d'un nombre)
refresh (raffraichis l'écrane en mode couleur)
pushxspr (donne le x du sprite à afficher)
drawspr (affiche le sprite au y donné et au x donné pas pushxspr avant)
state (fonction rapide pour stocker le buffer de l'écran en 5 couleur) (très pratique dans un jeux)
et fonctions que j'ai fini de programmer et que je vais ajouter: nom de librairie inconnu pour l'instant:
modlist (liste les modules (fichier externe lua que l'on peut charger))
modload (execute un module)
Pour plus de détail sur les fonctions: un extrait de ma doc:
extrait
extrait
[ ] signifie que l'argument et optionnel
--key (numero de touche)
retourne false si la touche n'est pas pressée, sinon retourne true si elle est pressée.
--g.misc (parametre ,[nombre])
Fait quelque chose de différent en fonction de paramètre:
-"space": retourne l'espace allouable restante en octets. Attention: la place libérée par le garbage collector n'est pas comptée comme place libre puisqu'elle n'est utilisable que pour des nombres lua.
-"numcalc": retourne 100 (indique que l'on est sur g100)
-"exit": le programme quitte brutalement et retourne au menu.
-"curseur": retourne la collone et la ligne du curseur où va écrire g.print
Les fonctions suivantes demandes que l'on rentre un nombre:
-"tostr" retourne le nombre en chaine de caractère (nombre entier entre -2147483647 et 2147483647). plus rapide que lib.tostring . De plus le nombre n'est jamais affiché sous forme exponentielle.
-"cont" nombre doit être 1 ou -1. diminue(-1) ou augmente le contraste(1)
Remarque: l'activation du mode 5 couleur porte le contraste à un certain niveau (et sa désactivation remet le contraste de départ) .
Pour une couleur plus douce en 5 couleurs, diminuez le contraste de 1 ou 2.
-"prec" attribue nombe à la précision de la conversion par défaut des nombres (tostring et g.print) et chaine de caractère. Par défaut elle est de 6 (6 nombres après la virgule (le reste est arrondi))
Si vous avez des imprecisions dans vos calculs, exemple: vous devez afficher 2.3499999, la précision de 6 chiffres affichera 2.35 ou le nombre précédent si elle était de 7.
--g.math (parametre ,[nombre])
Fait quelque chose de différent en fonction de paramètre:
-"ln" retourne ln(nombre) ln est le logarithme népérien (log(x) = ln(x)/ln(10)
-"exp" retourne exp(nombre)
-"sqrt" ou "racine" retourne la racine carrée du nombre
On peut aussi calculer la racine avec exp((ln(x))*0.5) ), mais sqrt est plus rapide (et précis dans certains cas, comme les racines des grands nombres)
Si le calcul est impossible pour sqrt ou ln (nombre négatif par exemple) la fonction retourne nil
--g.wait(nb de fois 2centisecondes)
met le proccesseur (et donc le programme) en pause pendant le temps indiqué.
Utilisez cette fonctions pour ralentir les menus,...
Elle permet d'économiser les piles (elle consomme 10 fois moins qu'une instruction normale)
--g.random(max)
renvoi un nombre aléatoire entre 0 et max-1. Le nombre renvoyé est un entier.
Max doit être inférieur à 32767
--int(nombre)
renvoi la partie entière d'un nombre.
--g.print(nombre ou/et booléen(true ou false) ou/et string,[autant de paramètres que l'on veut (max 200)])
affiche tout ce que vous demandez en noir et blanc à l'endroit ou se situe le curseur virtuel (invisible) (voir g.misc pour savoir ou est le curseur)
--g.curseur(ligne (axe des y), collone (axe des x))
place le curseur où g.print va écrire
Cela correspond à placer où l'on va écrire comme la fonction locate en basic sauf que l'on écrit rien.
On a droit à la 8e ligne innaccessible avec locate.
--g.pixl(x,y,couleur,[page])
affiche un pixel blanc (couleur = 0) ou noir (couleur=1) sur la page principale ou celle que vous indiquez.
--g.ligne(x1,y1,x2,y2,[page])
affiche une ligne noire du point (x1,y1) au point (x2,y2) sur la page principale ou celle que vous indiquez.
--g.picture(paramètre,page, picture)
-si paramètre = 1 charge la picture indiquée (entre 1 et 20) sur la page donnée
-si paramètre = 2 charge la page indiquée dans la picture
retourne true si le code a eu un effet,
false sinon (exemple: La picture indiquée n'existe pas (demandez à l'utilisateur de la creer une dans graph))
--g.setcolor(true ou false)
active(true) ou désactive (false) le mode d'affichage 5couleur (au démarrage du programme, le mode d'affichage est Noir et blanc)
--g.letter(x,y,caractères ou nombre)
affiche aux coordonnées entrées une chaine de caractère ou un nombre.
Si on entre un nombre, il est converti en un entier entre -2147483647 et 2147483647
--clear nil
efface l'écran (le buffer 5 couleur)
--refresh nil
dessine l'écran invisible à l'écran.
--g.pixl(x,y,couleur)
dessine un pixel d'une couleur de 0(blanc) à 4 (noir) (1:gris clais 2: gris moyen 3: gris foncé) dans l'ecran invisible, et 5 inverse le pixel.
--g.ligne(x1,y1,x2,y2,couleur)
Dessine une ligne de la couleur désirée (entre 0: blanc et 4: noir (5: inverser les couleurs)) dans l'écran invisible.
En 5 couleurs, on peut aussi tracer un rectangle avec cette fonction:
--g.ligne(x1,y1,x2,y2,couleur1,couleur2)
Dessine un rectangle de contour couleur1 et de intérieur couleur2 (si vous ne voulez pas que l'intérieur soit dessiné, donnez un nombre supérieur à 5 à couleur2.)
--g.tstpixel(x,y)
renvoie la couleur du pixel dans l'écran invisible
--g.fill(couleur)
rempli l'écran invisible de la couleur donnée. 5 inverse l'écran.
Il me semble que l'on peut choisir des meilleurs noms voir peut-être changer l'organisation des paramètres des fonctions.
Merci de vos idées, elles sont toutes bienvenues, n'hésitez pas.
PS: De plus si quelqu'un veut porter le lua pour graph85 (je l'aiderais et il pourra demander de l'aide sur le forum) il faudrait reprendre les mêmes fonctions pour assurer la compatibilité d'où l'interet qu'elles soient simples et instinctives.