Micro Lua DS

Micro Lua DS

Micro Lua DS est une implémentation aujourd'hui open-source pour la Nintendo DS du langage de programmation Lua de la même manière que celle qui existe pour la PSP avec Lua Player. Elle se base sur la bibliothèque de dessin conçue par Brunni, la µLibrary, dont elle tire par ailleurs son nom.

Sommaire

Historique

Développement

Micro Lua est un projet initialement développé par Risike à partir de septembre 2008. Le 9 juillet 2009, celui-ci rend son travail open source, ne souhaitant plus continuer le développement. Micro Lua est alors repris par la communauté.

Versions

Seules les versions majeures sont répertoriées ici. Toutes les révisions sont disponibles sur le Google Code de Micro Lua.

1.0 bêta Première version
1.0.1 Correction de bug mineure à propos de la gestion des exceptions
2.0 bêta Nombreuses améliorations de performance, gestion native des fichiers INI et amélioration de la gestion des exceptions
2.0 bêta 2 Correction d'un exemple
3.0 pre-release Cette version destinée aux membres du forum apporte, outre de nombreuses corrections de bugs, le support du Wifi et des fonctionnalités rumble ("vibration") et motion ("mouvement"), et une meilleure implémentation du son.
3.0 finale Version publique de la 3.0, corrige quelques bugs par rapport à la pre-release
4.0 Amélioration de la gestion de la mémoire et du Wifi, ajouts aux capacités de dessin (couche alpha), accès aux informations stockées dans la console

A venir

Syntaxe générale

Micro Lua se basant sur le langage Lua, il ne sera détaillé ici que des exemples d'utilisation de Micro Lua. De plus, ces informations ne sont pas exhaustives ; l'API complète peut être trouvée ici.

Hello world

-- Condition usuelle afin de quitter la boucle principale "infinie" du programme lors d'une pression sur le bouton Start
while not Keys.newPress.Start do
 
-- Mise à jour des contrôles
Controls.read()
 
-- Affiche "Hello world!" sur l'écran du haut, dans le coin supérieur gauche
screen.print(SCREEN_UP, 0, 0, "Hello world!")
 
-- Commande la mise à jour des écrans
render()
 
end

L'ensemble de la boucle, de la fonction Controls.read() et render() constitue la structure de base d'un code avec Micro Lua.

Affichage de formes primaires

Lignes

screen.drawLine(ecran, x1, y1, x2, y2, couleur)

Micro Lua définit un type personnalisé servant à stocker une information de couleur : le type Color.

Rectangles

Les coordonnées indiquées sont respectivement celles du coin supérieur gauche et du coin inférieur droit.

-- Rectangle vide
screen.drawRect(ecran, x1, y1, x2, y2, couleur)
 
-- Rectangle plein
screen.drawFillRect(ecran, x1, y1, x2, y2, couleur)
 
-- Rectangle dégradé
-- Les couleurs correspondent à chaque coin du rectangle, de haut en bas et de gauche à droite
screen.drawGradientRect(ecran, x1, y1, x2, y2, couleur1, couleur2, couleur3, couleur4)

Images

Micro Lua, tout comme la µLibrary, distingue les deux mémoires générales de la Nintendo DS : la mémoire vidéo, désignée par VRAM, et la mémoire principale, qui correspond à RAM. Les images peuvent être chargée indifféremment dans l'une ou l'autre des mémoires, mais l'affichage depuis la VRAM est plus efficace. Micro Lua supporte les types GIF, PNG et JP(E)G.

-- Chargement d'une image dans la VRAM
img = Image.load(cheminFichier, VRAM)
 
-- Affichage de l'image
-- Il est possible de n'afficher qu'une partie de l'image, à partir des coordonnées internes sourceX et sourceY, sur largeur/hauteur pixels
screen.blit(ecran, x, y, img[, sourceX, source Y, largeur, hauteur])
 
-- Rotation d'une image
-- Les coordonnées sont celles du centre de la rotation (par défaut, le centre de l'image)
Image.rotate(img, angle [, xCentre, yCentre])
 
-- Agrandissement / réduction d'une image
Image.scale(image, longueur, largeur)

Contrôles

La gestion des contrôles se fait via des conditions sur les variables suivantes :

  • Pour le stylet :
    • Stylus.X et Stylus.Y : coordonnées du Stylet
    • Stylus.held : état appuyé sur l'écran du stylet
    • Stylus.released : état relâché du stylet
    • Stylus.newPress : vaut true si le stylet effectue une nouvelle pression
    • Stylus.doubleClick : vaut true si le stylet effectue un double-clic
    • Stylus.deltaX et Stylus.deltaY : delta X et Y (accroissement de X et de Y) du mouvement du stylet
  • Pour les boutons :
    • Trois états pouvant être testés pour chaque bouton : held, released et newPress
    • Les boutons sont désignés par A, B, X, Y, L, R, Start, Select, Up, Down, Left, Right
    • Les variables sur les boutons sont des compositions à partir des états et des noms des boutons répondant à ce modèle : Keys.<état>.<bouton>

Fonctionnalités

Outre les dessins et la gestion des contrôles vus ci-dessus, Micro Lua intègre de nombreuses autres fonctionnalités :

  • des Timers ("chronomètres")
  • un système complet de sprites
  • un système complet de maps ("cartes") et son équivalent plus rapide mais moins souple de scrollmaps. Les maps sont des assemblages de tiles ("tuiles") permettant la réalisation d'environnements modifiables comme pour des jeux de rôle
  • un système de débogage
  • un ensemble complet de fonctions de gestion des fichiers présents sur le linker (via la libfat)
  • un système de "canevas", équivalent à l'affichage classique mais plus rapide et performant, bien que moins souple
  • le support (pour les linkers compatibles) des fonctionnalités de rumble et de motion
  • la gestion du temps et de la date
  • la gestion du Wifi
  • le support du son (uniquement par des fichiers MOD ou WAV)
  • la gestion des fichiers de configuration INI
  • l'accès aux informations stockées sur la console

Notes et références

Voir aussi

Liens externes



Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Micro Lua DS de Wikipédia en français (auteurs)

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • Utilitaire de code — Un utilitaire de code est un logiciel qui permet de faciliter la programmation dans le ou les langages dans lequel ou lesquels il est spécialisé (ex : µLua Creator, utilitaire de code pour le Micro Lua DS). Ces logiciels sont très peu connus …   Wikipédia en Français

  • Creative ZEN — This article is about the digital media brand. For the portable media player, see ZEN (portable media player). The Creative ZEN (formerly known as Creative NOMAD Jukebox Zen) is a range of digital audio players (DAPs) and portable media players… …   Wikipedia

  • Lego Mindstorms — The LEGO Mindstorm series of kits contain software and hardware to create small, customizable and programmable robots. They include a programmable Brick computer that controls the system, a set of modular sensors and motors, and LEGO parts from… …   Wikipedia

  • Anime Studio — Entwickler ab 1999: LostMarble ab 15. November 2007: Smith Micro Software Aktuelle Version 7.0[1] (12. Juni 2010) Betriebssystem Windows, Mac, Linux Kategorie …   Deutsch Wikipedia

  • Comparison of programming languages — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia

  • Clam AntiVirus — Clam AV 0.96, running a definition update, scanning a file and identifying a Trojan from the command line. Developer(s) Tomasz Kojm …   Wikipedia

  • PlayStation Portable — Pour les articles homonymes, voir PSP. PlayStation Portable (PSP) …   Wikipédia en Français

  • Список .NET-языков — Эта страница информационный список. Языки программирования .NET (Языки с поддержкой CLI или CLI языки)  компьютерные языки программирования, используемые для создания библиотек и программ, удовлетворяющих требованиям Comm …   Википедия

  • Homeworld 2 — Infobox VG title = Homeworld 2 developer = Relic Entertainment publisher = Sierra Entertainment designer = engine = version = 1.1 (2.1.1.1 for Mac) released = September 16, 2003 genre = Real time strategy modes = Singleplayer and multiplayer… …   Wikipedia

  • Comparison of Linux distributions — Technical variations of Linux distributions include support for different hardware devices and systems or software package configurations. Organizational differences may be motivated by historical reasons. Other criteria include security,… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”