giovedì 29 maggio 2014

Galaxy Studio

Livecode non è solo un linguaggio di programmazione, ma fornisce anche un ambiente integrato per sviluppare il software (IDE).
Per chi usa il Mac esiste un'altra alternativa per scrivere codice Livecode e si chiama Galaxy Studio, è disponibile qui: http://www.macupdate.com/app/mac/22753/galaxy-studio



Anche se non viene più aggiornato, rimane un sistema alternativo per sviluppare software su MacOS.

mercoledì 28 maggio 2014

Personalizzare la forma della nostra finestra

Le finestre vengono create in automatico di forma rettangolare, ma potete utilizzare qualsiasi disegno per cambiare la forma delle finestre dei vostri programmi. Le finestre possono persino avere dei buchi o sembrare tagliate.
Ecco un esempio banale, immaginiamo di avere una finestra fatta così:
e la vogliamo trasformare così:

E' semplicissimo, importate l'immagine di sfondo (che contenga parti trasparenti, come PNG o GIF)  e vedete il numero ID assegnato da Livecode nell'importazione, ad esempio 1008; poi il comando da eseguire è:

set the windowshape of this stack to ID 1008


Ora la finestra non ha più tutti i pulsanti standard per minimizzarla, ingrandirla e chiuderla; inoltre non ha più la barra per trascinarla. Per questo motivo sarebbe opportuno che ci li metteste voi, in quello per chiudere potete scrivere:

on MouseUp
   quit
end MouseUp


mentre in quello per ridurre ad icona:

on mouseUp
   set the iconic of this stack to true
end mouseUp


e otterrete qualcosa del genere:

Mentre per poter spostare la finestra aggiungete questo codice allo sfondo:
on mouseStillDown   
   set the loc of this stack to globalloc(the mouseLoc)
end mouseStillDown
   

martedì 27 maggio 2014

Come fare dei pulsanti personalizzati

Oltre ai pulsanti normali, è possibile creare dei pulsanti personalizzati.
Prima di tutto fate i pulsanti normali, come questi:
Importate le immagini che volete utilizzare per ogni stato del pulsante (normale, schiacciato, attivo, ecc.):


Poi per ogni pulsante selezionate tra le sue proprietà "icons & border"  levate la spunta a tutti i tipi di bordi.e scegliete le immagini che preferite per le voci Icon, Hover Icon; quando vi appare la libreria, le vostre immagini saranno dentro "this stack":

Scegliete "transparent button" nella scheda delle proprietà basic e levate la spunta a show name.
A questo punto avrete i pulsanti che preferite:

lunedì 26 maggio 2014

Rilasciato Livecode 7

E' stato appena pubblicato Livecode 7, la funzionalità principale è il supporto nativo alla codifica unicode, quindi potete utilizzare e scrivere con ogni tipo di lingua.
La potete scaricare da qui: http://downloads.livecode.com/livecode/

mercoledì 21 maggio 2014

Altre tipi di animazioni

Per creare immagini basta usare la modalità disegno e impostare una bassa velocità, ecco un esempio del codice:

on mouseUp
   set the rect of the templateImage to 100,100,400,400
   create image "test"
   choose brush tool
   set the brush to 8
   set the brushColor to red -- could use an RGB triplet here
   set the dragSpeed to 20 -- very slow
   #H
   drag from 120,120 to 120,300
   drag from 120,200 to 150,200
   drag from 150,300 to 150,120
   #i
   drag from 180,120 to 180,150
   drag from 180,180 to 180,300     
end mouseUp

questo è il risultato :
Chiaramente è molto semplice, ma potete usare tutte le forme geometriche del "paint" tool.

martedì 20 maggio 2014

Applicazioni multimediali

Con Livecode è possibile inserire all'interno del proprio programma lettori audio o video. Ma la cosa più interessane è che si può attivare messaggi al raggiungimento di un determinato fotogramma o minuto di esecuzione.
Una volta inserito il nostro lettore e selezionato il file da eseguire, potete leggere di quanti secondi (o frames o altra unità di misura) è composto. Nel nostro caso 19'797:

Se andate alla voce "callbacks" delle proprietà, potete impostare quando attivare alcuni eventi.

In questo modo potete creare film sottotitolati, audiolibri interattivi, karaoke, ecc.


lunedì 19 maggio 2014

Creare programmi per MacOS

Livecode semplifica molto la creazione di programmi su MacOS. Il sistema operativo Mac gira su computer Mac che hanno processori PowerPC e computer Mac che hanno processori Intel. Usando altri linguaggi linguaggi di programmazione dovreste specificare il processore su cui  volete far funzionare il vostro software quando andate a compilare il sorgente del vostro programma.
Livecode vi permette di scegliere se fare il programma per solo uno dei due processori o per entrambi, utilizzando il formato Mac "universal".
Ecco una schermata delle "stand alone application setting" che vi permette di scegliere come ottenere l'eseguibile:

venerdì 16 maggio 2014

Nuova grafica

Sto cercando di migliorare l'aspetto di questo blog. Se avete dei suggerimenti, sono tutti ben accetti.

mercoledì 14 maggio 2014

Come creare un'animazione

Se volete creare un videogioco o un'animazione per un vostro programma, vi servono prima di tutto una serie di immagini da sostituire in sequenza per creare l'animazione.
Io ho creato tre sequenze differenti per un personaggio: quella in cui è fermo(s1-s18), quella in cui avanza (f1-f6) e quella in cui indietreggia (b1-b6).

Mettiamo un'immagine, che chiameremo "thai" come esempio, nella nostra finestra e creiamo una  proprietà custom che contenga la cartella con tutte le sequenze dell'animazione (chiamati frame o sprite).

Esempio di sprite
Io per far prima, ho messo l'immagine e poi ho aggiunto il seguente codice:

on opencard
   put the filename of image thai into temp
   set itemdel to "/"
   put item 1 to -2 of temp into temp2
   set the cartella of image thai to temp2
   send fermo to image thai
end opencard



Poi ho scritto il codice per l'animazione quando rimane sul posto, il messaggio l'ho chiamato fermo. Ho creato una proprietà custom sprite che mi fa da contatore per l'ordine corretto delle immagini.
Se le immagini non sono tutte della stessa dimensione il baricentro si sposta e l'animazione potrebbe cominciare a muoversi, per questo è meglio memorizzare la posizione (proprietà loc) e reimpostarla dopo aver aggiornato lo sprite.
Bisogna stare attenti a creare un messaggio che chiama se stesso, non una sequenza ripetuta all'interno di un messaggio, altrimenti blocchereste il programma. Ecco il codice corretto dentro l'immagine:

on fermo
   put the cartella of me into cart
   put the sprite of me into spr
   add 1 to spr
   if spr > 16 then
      put 1 into spr
   end if
   set the sprite of me to spr
   put the loc of me into temploc
   put cart & "/s" & spr & ".png" into temp
   set the filename of image thai to temp
   set the loc of me to temploc      
   send fermo to me in 0.2 sec   
end fermo

on cancellafermo
      repeat for each line templ in the pendingmessages
      if item 3 of templ is "fermo" then
         put item 1 of templ into temp
         cancel temp
      end if      
   end repeat
end cancellafermo


Come vedete l'immagine contiene sia il messaggio da ripetere per fare tutto il ciclo della sequenza che il messaggio per bloccarlo.
Adesso aggiungiamo i pulsanti per muovere il personaggio, ecco il codice per muoverlo in avanti:

on mouseUp   
call cancellafermo of image thai
   set the stato of image thai to "avanti"   
   put the cartella of image thai into cart
   repeat for 2 times
      repeat with spr = 1 to 6
         put cart & "/f" & spr & ".png" into temp
         put the item 1 of the loc of image thai into templocx      
         put the item 2 of the loc of the image thai into templocy
         add 5 to templocx
         set the loc of the image thai to templocx,templocy      
         set the filename of image thai to temp
         wait 0.2 sec
      end repeat
   end repeat   
   send fermo to image thai   
end mouseUp


Siccome non voglio interruzioni durante la sequenza di movimento, ho usato un unico messaggio con un ciclo repeat all'interno. Ma fatelo solo se volete qualcosa che non possa mai essere interrotto. Di solito è meglio fare come nel caso della sequenza da fermo.
Usate anche lo stesso codice per il pulsante per andare indietro (basta sostituire -5 con 5) e avrete fatto.
Questo è il risultato e non c'è una riga di codice in più:

lunedì 12 maggio 2014

Integrare Facebook dentro i nostri programmi o app

E' possibile integrare le funzioni di Facebook, come postare immagini o commenti su Facebook scrivendo i programmi in Livecode. Andre Garcia ha creato un libreria che possiamo scaricare e utilizzare con i nostri programmi, in modo da sfruttare la le Facebook Graph API.
Una guida con tutti i passaggi necessari è disponibile qui: http://newsletters.livecode.com/may/issue171/newsletter1.html

 Mentre la pagina di Andre Garcia dove potete comprare questa libreria a soli $ 30 è qui: http://andregarzia.com/pages/en/facebooklib/

venerdì 9 maggio 2014

Muovere e rilevare la collisione degli oggetti

Se volete creare dei giochi o dei controlli sofisticati dovete potere trascinare degli oggetti e verificare se toccano altri oggetti.
Per poter trascinare un oggetto basta mettere "grab me" nel codice di un oggetto:


on mouseDown
   grab me
end mouseDown

Per poi poter rilevare le collisioni basta usare la funzione  intersect(), ecco tutto il codice dell'esempio nel video:

on mouseDown
   grab me
end mouseDown

On Mousemove
   if intersect(image image1,image image2) then
      set the text of field field1 to "SI INTERSECANO"
      set the backgroundcolor of field field1 to 255,0,0
   else
      set the text of field field1 to "NON SI INTERSECANO"
      set the backgroundcolor of field field1 to 0,255,0
   end if   
end Mousemove


giovedì 8 maggio 2014

Forum in italiano

Come ormai sapete c'è il forum in inglese su http://forums.runrev.com/ , comunque per quelle persone che preferiscono l'italiano adesso c'è anche il seguente gruppo: https://groups.google.com/forum/#!forum/livecode-italia completamente in italiano.
Semplice, pubblico e gratuito.


mercoledì 7 maggio 2014

Amazon App e pagamenti in-App

Anche Amazon si è buttata sul mercato delle App. Livecode permette di generare App per Android e metterle su qualunque sito di vendita, anche quello Amazon.
Non solo potete vendere le vostre App ma potete inserire anche gli acquisti in-App, cioè quelle funzione aggiuntive del vostro programma che sono disponibili solo a pagamento.
Il seguente post vi spiega come inserire i pagamenti in-App per con il mercato App-shop di Amazon: http://newsletters.livecode.com/april/issue169/newsletter4.html
inoltre potete leggere di più sul meccanismo in-App di Amazon a questa pagina: https://developer.amazon.com/appsandservices/apis/earn/in-app-purchasing/docs/testing-iap

martedì 6 maggio 2014

Dispositivi supportati

Quali dispositivi supporta Livecode?
Molti più di quelli che potreste immaginare, dalla pagina http://downloads.livecode.com/livecode/ trovate tutte le versioni pubbliche.
I dispositivi supportati pubblicamente sono:
  • Windows, tutte le versioni da Windows 2000 in poi (Xp e Windows Server inclusi)
  • Linux (tutte le versioni con kernel 2.4 o superiore)
  • MacOS dalla versione 10.3.9 in poi
  • Android dalla versione 2.2 in poi
  • iOS 4.0 o superiore
  • Kindle fire
  • Raspberry Pi (il download è in fondo alla pagina dei download)
  • Server web sia su Windows, Linux e Mac
Ho testato personalmente il funzionamento su Raspberry Pi (processore ARM) e devo dire che è egregio e fluido.
Pochi sanno che Livecode può essere usato anche come webserver al posto di Apache e PHP; qui potete trovare una guida a tal proposito: http://livecode.com/developers/guides/server/
La sintassi nei webserver Livecode è estremamente semplice, basta usare il tag <?lc come quello <?php, ecco un esempio:
<html>
<head></head>
<body>

<?lc put "hello world" ?>
</body></html>

lunedì 5 maggio 2014

Guide e aiuto

Quando si ha a che fare con un nuovo linguaggio di programmazione è sempre fondamentale conoscere tutte le risorse disponibili per apprenderlo al meglio o chiedere aiuto in caso di problemi.

Una guida in italiano è disponibile qui: http://www.maxvessi.net/pmwiki/pmwiki.php?n=Main.GuidaALivecode

Livecode incorpora già una guida in PDF che potete aprire da: Help -> User Guide

La guida è scaricabile anche da Scribd:
Oltre alla guida, dentro Livecode è disponibile un dizionario che contiene tutte le parole chiave di Livecode:

Perfino l'editor del codice oltre all'autocompletamento e l'indentazione automatica ha il dizionario in tempo reale che vi spiega costa state scrivendo:

Se avete di problemi è disponibile il forum gratuito dove chiedere aiuto, trucchi e spiegazioni: http://forums.runrev.com/ 

Se invece volete segnalare dei problemi (bug) di Livecode c'è il sito http://quality.runrev.com/ . Anche su quest'ultimo sito la registrazione è gratuita, potete sfogliare tutti i bug segnalati, lo stato per la risoluzione e se ci sono dei modi per aggirare il problema (workaround).

Sul sito http://lessons.runrev.com/ potete leggere delle guide su alcuni aspetti particolari di Livecode, come ad esempio la programmazione per Android e iOS, oppure sui applicazioni multimediale, ecc.

Cliccando sul pulsante User Samples potete aprire una finestra per vedere e scaricare i programmi fatti da altri utenti. Potete, inoltre, anche caricare i vostri programmi per condividerli con gli altri utenti:

Esiste anche anche la newsletter ufficiale di Livecode: http://livecode.com/community/newsletters/ a cui potete abbonarvi gratuitamente.

Un altro sito ricco di informazioni su Livecode è: http://livecode.byu.edu/

Esiste anche un canale video: https://www.youtube.com/user/RunRevLtd

C'è anche un wiki su Livecode: http://livecode.wikia.com/wiki/Livecode_Wiki

Oltre a tutti questi risorse gratuite, Livecode offre tutta una serie di corsi a pagamento:

venerdì 2 maggio 2014

Licenze

Nel precedente post ho scritto che Livecode è gratuito, ed è vero. Livecode è gratuito ed open source, ma se volete creare un programma che non sia open source, allora "dovreste" comprare la versione closed source. La versione a pagamento "closed" permette di creare programmi chiusi in cui non è possibile risalire al codice sorgente.
La durata della licenza è di un anno, i programmi creati "closed" rimangono tali anche se la licenza scade.
Oltre alla licenza closed esistono altre licenze che offrono servizi aggiuntivi, tutti della durata di un anno dall'acquisto. Ecco una tabella riepilogativa:
VersioneCostoLicenzaVantaggi
CommunityGRATISGPLv3Scrivere qualsiasi programma con licenza GPLv3
Commercial$ 500PrivataScrivere qualsiasi programma con qualunque licenza
Pro$ 999PrivataScrivere qualsiasi programma con qualunque licenza, supporto dedicato, i bug segnalati da voi hanno un priorità maggiore.
Enterprise Lite$ 1'999PrivataScrivere qualsiasi programma con qualunque licenza, supporto dedicato, i bug segnalati da voi hanno un priorità maggiore. Addestramento online.
Enterprise$ 10'000PrivataScrivere qualsiasi programma con qualunque licenza, supporto dedicato, i bug segnalati da voi hanno un priorità maggiore. Addestramento online. Integrazione con i vostri sistemi o sistemi cloud. Sistema di controllo della versione adattato alle esigenze del cliente (tipo CVS).
Come potete vedere potrete sviluppare programmi con Livecode senza dover pagare alcun compenso; solo nel caso voleste creare programmi "closed source", dovreste comprare la licenza.