mercoledì 30 dicembre 2015

Pagamenti in-app per iOS

I pagamenti "in-app" sono delle opzioni sbloccabili solo dietro pagamento. I pagamenti in-app si possono mettere sia un'app gratuita sia in una a pagamento. Questo sistema risulta molto comodo per diffondere i nostri programmi e poi farci pagare per delle funzioni aggiuntive o dopo un certo periodo di tempo.
Questo sistema è implementabile con livecode anche su iOS, e a questa pagina trovate una guida con tanto di file scaricabile: http://lessons.livecode.com/m/4069/l/186807-how-do-i-implement-in-app-purchases-in-livecode-apple-appstore


martedì 29 dicembre 2015

Percepire più pulsanti premuti

Molte volte, soprattutto quando si scrivono videogiochi, è importante riuscire a capire se l'utente stia premendo contemporaneamente dei pulsanti, ad esempio due tasti frecce insieme per far spostare in diagonale un personaggio.
In livecode è possibile utilizzando la funzione keysdown():


on keydown
   put keysdown() into msg
end keydown

on arrowkey
   put keysdown() into msg
end arrowkey


Nell'esempio avrete la finestra dei messaggi che si aprirà mostrandovi i numeri dei tasti premuti, separati da virgola.
Ad esempio freccia destra e freccia in basso premuti insieme sono: "65363,65364".
In questo modo potrete gestire qualsiasi combinazione di tasti senza problemi.

lunedì 28 dicembre 2015

Fare un'app per iPhone in 3 minuti

Il video seguente è un esempio per fare una app per iPhone in 3 minuti usando livecode, questo video è stato presentanto alla conferenza MacTech del 2011:

giovedì 24 dicembre 2015

Animazione con le GIF

In un altro posto abbiamo visto come creare animazioni e sfruttarle per fare videogiochi (http://livecodeitalia.blogspot.it/2014/05/come-creare-un_14.html), oggi vedremo come fare prima usando le GIF animate.
Ad esempio prendiamo due sfondi animati come i seguenti:

Ora scegliano due animazioni, una per il personaggio da fermo e una per il personaggio quando fa un'attività:
A questo punto importatele nel vostro programma: File -> Import as control -> Image file. A ogni immagine sarà assegnato da livecode un numero ID nella finestra delle proprietà (ad esempio 1012), annotiamoli per usarli dopo.
Create due pulsanti, uno per lo sfondo che chiameremo sfondoPrincipale  e uno per il personaggio, che chiameremo Ryu. Ovviamente dalle proprietà levate show name, Three D, border, hilite border.
Fatto ciò possiamo creare un pulsante per cambiare lo sfondo col seguente codice:

on mouseUp
   if the icon of button "sfondoprincipale" is 1012 then
      set the icon of button "sfondoprincipale" to 1013
   else
      set the icon of button "sfondoprincipale" to 1012
   end if
end mouseUp



Mentre per il personaggio, possiamo creare un altro pulsante col seguente codice, sapendo che l'animazione dell'attacco dura 600 millisecondi:

on mouseUp
   lock screen
   set the currentframe of image "street_fighter_005_rev5.gif" to 1
   set the repeatCount of image "street_fighter_005_rev5.gif" to 1
   set the icon of button "ryu" to 1018
   unlock screen
   send "resetta" to button "ryu" in 600 millisec
end mouseUp


Resetta è un messaggio del pulsante Ryu per rimettere l'animazione standard:


on resetta
   set the icon of me to 1019
end resetta



Per ora abbiamo associato gli eventi ai click delmouse, ma si possono associare a ciò che preferiamo.
Il risultato è il seguente:

Utilizzare le GIF permette di suddividere il lavoro fra programmatori e disegnatori. I disegnatori devono solo dire al programmatore quanto durano le animazioni, che è un valore impostabile nella GIF. Inoltre, come avete visto, usare le GIF richiede molto meno codice.

venerdì 18 dicembre 2015

Contare le ricorrenze delle parole di un testo

Immaginiamo di dover sapere quante volte le parole sono state ripetute in un testo, ad esempio nella frase "Tre tigri contro tre tigri" abbiamo che la parola tre e la parola tigri sono ripetute due volte.
In livecode fare il conteggio delle ripetizioni di tutte le parole è velocissimo, basta il seguente codice:

repeat for each word tWord in testo     
   add 1 to conteggio[tWord]
end repeat


in questo modo otteniamo un array dove ogni elemento è individuato dalla parola e contiene il numero di ripetizioni. Questo conto è velocissimo, per tutta la divina commedia livecode impiega meno di 1 secondo!
Sempre utilizzando la frase "Tre tigri contro tre tigri", otterremo:
  • conteggio["tre"] = 2
  • conteggio["tigri"] = 2
  • conteggio["contro"] = 1
Il seguente codice prende il testo contenuto in un campo e mette il conteggio in un secondo campo, ordinandolo per numero di ricorrenze:



   repeat for each word tWord in field 1   
      add 1 to conteggio[tWord]
   end repeat
   combine conteggio using return and ":"
   set itemdel to ":"
   sort lines of conteggio numeric by item 2 of each
   put conteggio into field 2



Ad esempio per la divina commedia abbiamo:

martedì 15 dicembre 2015

Rinominare automaticamente i nuovi controlli

Quando usiamo livecode per scrivere un programma, tutti i nuovi bottoni hanno come nome "button", i campi di testo "field" e così via...
In realtà hanno anche un nome univoco che è il numero di ID, ma non è semplice da ricordare.
Se volessimo che ogni nuovo controllo abbia già un nome univoco semplice e immediato possiamo usare questa estensione gratuita per livecode scaricabile da link qui di seguito: ControlNamer
Avviando questo programma vi apparirà una finestra con un solo pulsante per attivare o disattivare l'estensione:

Se l'attiverete, ogni nuovo controllo avrà un nome diverso, tipo: button1, button2, button3, ecc.
In questo modo potrete orientarvi subito quando lavorate con finestre con moltissimi controlli identici.

venerdì 11 dicembre 2015

Usare i cookie col livecode server

Se usiamo livecode anche come server, è importante saper utilizzare i cookie. Oggi vediamo come fare.
Se vogliamo creare un cookie temporaneo che si cancella quando si chiude il browser, questo è il codice da inserire nella pagina html:

<?lc
put cookie "sessioncookie" for "/" with "Questo cookie si cancella quando si chiude il browser"
?>


se invece vogliamo un cookie che rimanga per del tempo sul computer dell'utente, dobbiamo specificare la durata indicando la data di termine in secondi UNIX , ad esempio:


<?lc
put cookie "yearcookie" for "/" with "Questo cookie dura un anno" until (the seconds + 60 * 60 * 24 * 365)
?>


Per leggere i cookie, basta utilizzare la variabile $_COOKIE che contiene tutti i cookie in un array.
Esempio:


<?lc
put $_COOKIE into tCookiesArray
if tCookiesArray is an array then
   put tCookiesArray["yearcookie"] into temp
end if
?>


Con questi esempi la variabile temp contiene "Questo cookie dura un anno".
Il ciclo if è solo un controllo per verificare che l'utente abbia dei cookie.

mercoledì 9 dicembre 2015

Servizi aggiuntivi livecode

La società livecode, oltre ad offrire livecode gratuitamente o a pagamento a seconda delle vostre esigenze, offre dei servizi aggiunti per quelle società o persone che hanno bisogno di qualcosa di più.
A questa pagina trovate le varie possibilità offerte: https://livecode.com/livecode-services/
Ecco i servizi più comuni offerti:

Nuove funzionalità (Add a Feature)

Potete richiedere di aggiungere a livecode delle funzionalità, queste aggiunte, se non rientrano in quelle già pensate da nel prospetto annuale, saranno aggiunte quanto prima.

Una giornata con un programmatore (Architecture Advice)

Potete prenotare una giornata con un programmatore, che vi spieghi alcune tecniche o trovi delle soluzioni ai vostri problemi.

Correzione urgente di bug (Priority Bug Fix)

Potete richiedere di correggere un bug prima di altri. Se quel bug per voi è critico, può risparmiarvi parecchi problemi.

Revisione del vostro codice (Code Review)

Potete chiedere di controllare e correggere il vostro codice. 

Corso di formazione personalizzato (Customized Training)

Potete richiedere della formazione specifica su certi argomenti. 

lunedì 7 dicembre 2015

Avviare programmi minimizzati

La tecnica che mostro qui di seguito  non è esclusiva per livecode, ma può essere utile saperlo anche per i programmatori di livecode. Se vi serve di avviare un programma in background, ma che non ha delle opzioni specifiche, su Windows potere fare in modo che comunque si avvi in background con il comando start /min, ecco qui di seguito un esempio:


put shell("START /MIN C:\" & quote & "Programmi\Free SMTP Server\localsrv.exe" & quote)


come vedete potete anche lanciare programmi che nel percorso o nel nome abbiano degli spazi; in tal caso dovete usare la parola quote, che rappresenta le virgolette, da mettere dopo c:\.

mercoledì 2 dicembre 2015

Conferenza annuale Livecode 2016

E' stata pubblicata la data e il lugo della conferenza annuale Livecode 2016.
Quest'anno si terrà in Edimburgo (Scozia) dal 2 al 4 Agosto 2016.

In questi tre giorni dedicati a livecode potrete incontrare altri sviluppatori, divertirvi al festival Fringe di Edimburgo e inoltre prenotare una giornata con uno dei programmatori di livecode in modo che vi aiuti nel vostro progetto. In pratica è come se lo assumeste per una giornata.
Qui potete vedere i dettagli dell'evento: https://livecode.com/edinburgh-2016/
Qui potete prenotare un programmatore tutto per voi: https://livecode.com/edinburgh-2016/developer-day/