Micro Lua DS

Micro Lua DS
Siglă.
Data primei versiuni 2008
Autor Risike
Dezvoltator Risike, Reylak și comunitatea Micro Lua DS
Ultima versiune 4.7.2 (5 ianuarie 2014)
Influențată de Lua , µLibrary
Sistem de operare Nintendo DS , Nintendo DSi , Nintendo 3DS
Licență GNUGPL versiunea 3
Site-ul web Forum oficial

Micro Lua DS este astăzi o implementare open-source pentru Nintendo DS a limbajului de programare Lua în același mod în care există pentru PSP cu Lua Player. Se bazează pe biblioteca de desene proiectată de Brunni, µLibrary, din care își ia și numele.

Istoric

Dezvoltare

Micro Lua este un proiect dezvoltat inițial de Risike din septembrie 2008. 9 iulie 2009, își face munca open source , nu mai dorește să continue dezvoltarea. Micro Lua este apoi preluat de comunitate.

Trebuie remarcat faptul că proiectul µLibrary a fost abandonat de Brunni cel puțin de la sfârșitul anului 2010, motiv pentru care MicroLua își păstrează propria versiune.

Actual Iunie 2013, managementul proiectului este transferat de la GoogleCode la SourceForge, ducând la o reflecție asupra direcției care trebuie luată și stabilind mai clar obiectivele dezvoltării Micro Lua.

Versiuni

Numai versiunile majore sunt enumerate aici. Toate reviziile sunt disponibile în depozitul SourceForge al Micro Lua.

1.0 beta Prima versiune
1.0.1 Remediere minoră a erorilor despre gestionarea excepțiilor
2.0 beta Numeroase îmbunătățiri de performanță, gestionarea fișierelor INI native și gestionarea îmbunătățită a excepțiilor
2.0 beta 2 Corectarea unui exemplu
3.0 pre-lansare Această versiune destinată membrilor forumului aduce, pe lângă multe remedieri de erori, suport pentru caracteristicile Wifi și rumble („vibrație”) și mișcare („mișcare”), precum și o mai bună implementare a sunetului.
3.0 final Versiunea publică 3.0, remediază unele erori în comparație cu versiunea anterioară
4.0 Gestionare îmbunătățită a memoriei și WiFi , adăugiri la capabilități de desen ( strat alfa ), acces la informațiile stocate în consolă
4.1 Modificarea sistemului de transparență alfa, diverse remedieri de erori, schimbarea siglei executabilului DS
4.2 Modificări ale constantelor; este o versiune finală după diferitele versiuni beta ale 4.1
4.5 Adăugați funcționalitate Nifi (conexiune directă DS-DS), schimbați shell-ul oficial
4.6 Oferă controlul intermitentului LED și îmbunătățește modul de depanare și afișarea ecranelor de eroare
4.7 Integrarea sistemului de fișiere încorporat, corectarea erorii de timp 3DS, multe îmbunătățiri de bază

A veni cu

Proiectul latent al îmbunătățirilor MicroLua este de a completa gama de funcționalități, în special prin adăugarea microfonului sau redarea fișierelor audio în formate mai comune. Din punct de vedere tehnic, s-a propus ideea de a schimba sintaxa generală către o orientare a obiectului (de exemplu, gestionarea cronometrelor sau a spritelor). De asemenea, este planificată migrarea întregului cod al interpretului în C (în prezent, o parte din funcționalități sunt codificate în Lua).

Este planificată utilizarea middleware-ului LuaJIT, pentru a îmbunătăți semnificativ performanța limbajului Lua.

Sintaxa generală

Micro Lua bazându-se pe limba Lua, aici vor fi detaliate doar exemple de utilizare a Micro Lua. Mai mult, aceste informații nu sunt exhaustive; API-ul complet poate fi găsit aici .

Bonjour Monde

-- 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

Întreaga buclă, a funcției Controls.read () și render (), constituie structura de bază a unui cod cu Micro Lua.

Afișarea formelor primare

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

Micro Lua definește un tip personalizat utilizat pentru a stoca informații despre culoare: tipul de culoare .

Dreptunghiuri

Coordonatele indicate sunt respectiv cele din colțul din stânga sus și din colțul din dreapta jos.

-- 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)

Poze

Micro Lua, la fel ca µLibrary, distinge cele două amintiri generale ale Nintendo DS: memoria video, denumită VRAM și memoria principală, care corespunde memoriei RAM . Imaginile pot fi încărcate fie în memorie, dar vizionarea din VRAM este mai eficientă. Micro Lua acceptă tipurile GIF, PNG și 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)

Controale

Gestionarea controalelor se face prin condiții privind următoarele variabile:

  • Pentru stylus:
    • Stylus.X și Stylus.Y  : coordonatele stiloului
    • Stylus.held  : stare apăsată pe ecranul stylusului
    • Stylus.released  : stare relaxată a stylusului
    • Stylus.newPress  : adevărat dacă stylusul apasă din nou
    • Stylus.doubleClick  : adevărat dacă stylusul efectuează un dublu clic
    • Stylus.deltaX și Stylus.deltaY  : delta X și Y (creșterea X și Y) a mișcării stylusului
  • Pentru butoane:
    • Trei state care pot fi testate pentru fiecare buton: a avut loc , a lansat și newPress
    • Butoanele sunt desemnate de A , B , X , Y , L , R , Start , Selectare , Sus , Jos , Stânga , Dreapta
    • Variabilele de pe butoane sunt compoziții din stările și numele butoanelor corespunzătoare acestui model: Taste. <state>. <bouton>

Caracteristici

În plus față de desene și gestionarea comenzilor văzute mai sus, Micro Lua integrează multe alte funcționalități:

  • de cronometre („cronometre”)
  • un sistem sprite complet
  • un sistem complet de hărți („hărți”) și echivalentul său mai rapid, dar mai puțin flexibil al hărților scroll . În Hărțile sunt ansambluri de plăci ( „gresie“) care permit crearea unor medii modificabili ca și pentru jocurile de rol
  • un sistem de depanare
  • un set complet de funcții pentru gestionarea fișierelor prezente pe linker (prin intermediul libfat )
  • un sistem „canvas”, echivalent cu afișajul clasic, dar mai rapid și mai eficient, deși mai puțin flexibil
  • suport (pentru carduri compatibile) pentru funcții de zgomot și mișcare
  • gestionarea orei și a datei
  • Gestionarea WiFi
  • Gestionare Nifi (conexiune DS la DS)
  • suport sunet (doar fișiere MOD sau WAV )
  • gestionarea fișierelor de configurare INI
  • acces la informațiile stocate pe consolă

Note și referințe

  1. Brunni explică faptul că µLibrary nu mai este întreținută (post din 12/12/2012): http://www.playeradvance.org/forum/showthread.php?t=37119

Vezi și tu

linkuri externe