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.
giovedì 29 maggio 2014
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 è:
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:
mentre in quello per ridurre ad icona:
e otterrete qualcosa del genere:
Mentre per poter spostare la finestra aggiungete questo codice allo sfondo:
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:
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/
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:
questo è il risultato :
Chiaramente è molto semplice, ma potete usare tutte le forme geometriche del "paint" tool.
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.
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:
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).
Io per far prima, ho messo l'immagine e poi ho aggiunto il seguente codice:
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:
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:
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ù:
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 |
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/
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:
Per poi poter rilevare le collisioni basta usare la funzione intersect(), ecco tutto il codice dell'esempio nel video:
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.
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
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:
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:
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
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:
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:
- http://livecode.com/academy/ qui potete ricevere un corso specifico su uno di questi argomenti: creare videogiochi, creare app, creare e-book interattivi, database e cloud
- https://livecode.com/store/training/livecode-university/ corso base passo passo per imparare tutte le componenti essenziali di Livecode
- Livecode Summer School offerte speciali che contengono vari corsi e sconti sui alcuni prodotti a pagamento.
- http://www.runrevlive.com/ conferenza annuale. Quest'anno a San Diego (California, USA) dal 2 al 5 Settembre.
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:
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.
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:
Versione | Costo | Licenza | Vantaggi |
---|---|---|---|
Community | GRATIS | GPLv3 | Scrivere qualsiasi programma con licenza GPLv3 |
Commercial | $ 500 | Privata | Scrivere qualsiasi programma con qualunque licenza |
Pro | $ 999 | Privata | Scrivere qualsiasi programma con qualunque licenza, supporto dedicato, i bug segnalati da voi hanno un priorità maggiore. |
Enterprise Lite | $ 1'999 | Privata | Scrivere qualsiasi programma con qualunque licenza, supporto dedicato, i bug segnalati da voi hanno un priorità maggiore. Addestramento online. |
Enterprise | $ 10'000 | Privata | Scrivere 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). |
Iscriviti a:
Post (Atom)