Durante la settimana ho continuato a lavorare su come integrare Svelte e Construct 3. Il primo tentativo è finito in nulla. Come mai? Beh, volevo creare una specie di calcolatrice scientifica ma le mie conoscenze di matematica sono piuttosto arrugginite. Dovrò rimettermi sui libri. Di conseguenza mi sono buttato sul piano B: un menù per Construct 3. Il primo test è stato promettente:

primo test

Partendo da questo ho deciso di continuare su questa strada. La mia idea è di ottenere un qualcosa che mi permetta di inserire menù di questo tipo nei miei progetti senza dover stare a faticare troppo. Anche se, a dire il vero, la strada più veloce sarebbe stata usare il progetto di Aekiro, Pro UI - UI Components. Ma perché scegliere la strada facile quando posso inerpicarmi per quella lunga e difficile?

Comunque, partendo da quella prova ho cominciato a creare un template e ad aggiungere cose. Ho impostato un meccanismo per cambiare il template del menù:

templates

Un altro per scegliere i fonts

fonts

E ovviamente un’interfaccia per gestire in maniera dinamica le varie voci

items

Mancano ancora un paio di cose. Mi piacerebbe aggiungere la possibilità di abilitare e disabilitare le varie voci. E in seconda battuta aggiungere alcuni stili predefiniti.

E poi manca ovviamente un progetto in C3 per mostrare come usare il tutto. Per finirlo devo definire alcuni dettagli sui comandi da usare.

Penso che questa sintassi si presti bene: la variabile globale menuSvelte gestisce tutte le proprietà del menù. Al momento ho aggiunto

  • items
    • pushItem (item:ItemType)
    • unshiftItem (item:ItemType)
    • addItemAtIndex (index:number, item:ItemType)
    • updateItemById (id:string, item:ItemType)
    • updateItemByLabel (label:string, item:ItemType)
    • updateItemByIndex (index:number, item:ItemType)
    • shiftItem ()
    • popItem ()
    • removeItemById (id:string)
    • removeItemByLabel (label:string)
    • removeItemByIndex (index:number)
    • loadItemsFromArray (arrayItems:ItemType[])
  • columns
    • allColumns ()
    • setColumns (array:string[])
  • title
    • setTitle (title:string)
    • reset ()
    • clear ()
  • visible
    • true ()
    • false ()
  • CSSVarStyle
    • init ()
    • changeStyle (style: string, value: string)
    • changeFontTitle (value: string)
    • changeFontItems (value: string)
    • changeFontTitleAndItems (title: string, items: string)

Ho ancora un paio di questioni tecniche da chiarire e da chiarirmi. La prima riguarda la possibilità o meno di usare sprites come icone. Ci sono alcuni limiti legati a C3 che non so se vale la pena cercare di aggirare. La seconda è come distribuire tutto questo.

Tutto quello che serve sono due file:

  • menu.js
  • menu.css

Dopo averli importati dentro Construct 3 è possibile creare dei menù personalizzati. Non so però se posso partire da questo per creare un plugin o se distribuire direttamente i due file.

Ci penserò, ma non oggi e domani. Oggi è (finalmente) il mio turno per il vaccino e domani sarà una giornata lunga la lavoro. Tenevo però a parlare di questo progetto perché ne sono abbastanza orgoglioso. E se piace anche a voi, ricordo la mia pagina su Patreon: patreon.com/el3um4s