Aiuto app tipo ant smasher

Ciao ale ho fatto in un altro modo grazie comunque Ho un xperia e4 mi servirebbe sapere come fare a disattivare i tasti home back e task quando sonora schermo come in questo caso

Ciao,

non conosco xperia. Ma ho paura che non si possa fare.

Ale

nono ho trovato bastava fare native.setProperty ( “androidSystemUiVisibility”, “immersiveSticky”)

ma sai come si fa a salvare i migliori punteggi

Ciao,

ah si , con le native properties, Android lo conosco lo stretto necessario :slight_smile:

Per salvare i punteggi e recuperarli usa la preference library di Satheesh,

https://code.coronalabs.com/code/preference-library-save-data-files-tables-numbers-strings-and-boolean

è facile da usare e fa quello che deve fare.

Ale

L Avevo già visto ma non avevo capito come usarlo e come fare in modo che il valore sia in display
E che salvi solo il Best score

Ciao

esempio preference:

local preference = require "preference" local myScore --Salva punteggio preference.save{score=myScore} --Leggi punteggio myScore = preference.getValue("myScore")

ovviamente devi aggiungere il tuo codice per gestire il valore, min, max, ecc.

Ale

io ho messo cos^ ma non parte

if ( score > scorebest) then

              preference.save(scorebest == score)

              scorebest = preference.getValue(“scorebest”)

              local scorebestNum = display.newText(sceneGroup,scorebest,480,27,“EASansCurves-Regular”,50)

            end

mi da degli errori nel file preference.lua alla riga 333

scorebest non  può essere chiave e variabile allo stesso tempo, inoltre devi usare = e non ==

local score, scorebest   if ( score \> scorebest) then      preference.save{theBestScore = score} end   --poi quando devi rileggere   scorebest = preference.getValue("theBestScore")    

Inoltre, attenzione alle parentesi,  {} e () hanno comportamenti diversi

Ciao,

Ale

Ok ma mi dava errore sull = comunque ok
Se io metto che scorebest 0 verrà inizializzato come zero ma solo quando non hai mai giocato è zero quindi come fare in modo che venga inizializzato come l ultimo score migliore anche chiudendo l applicazione

ma poi come faccio a metterlo graficamente dopo che lo legge comunque a me serve che si veda e mi da che thebestscore è nil quindi non parte se lo metto come stringa da visualizzare! aiuto :wink:

Allora, qui si tratta di logica di programmazione non c’entrano più Corona SDK e LUA!

Comunque, se non ho capito male, lo pseudo codice potrebbe essere questo:

Inizio il gioco, ->  bestscore = 0 , score = 0

Leggo bestscore dalle preferences.

ATTENZIONE!

Devi prima verificare che non sia nullo quindi:

if (preference.getValue("theBestScore") ~= nil) then             bestscore = preference.getValue("theBestScore") end

Gioco e faccio dei punti, per ogni punto ->  score = score + 1

Finisce la sessione di gioco, salvo il punteggio solo se score > bestscore

if (score \> bestscore) then     preference.save{ theBestScore = score} end

Chiudo l’app.

Rilancio l’app e preference.getValue leggerà l’ultimo valore salvato

Per stamparlo graficamente nella label che avrai creato con display.newText basterà cambiare il testo:

scorebestNum.text = bestscore

Ciao,

Ale

Ale ho quasi risolto con un tutorial di corona che mi faceva creare un modulo
Che aveva funzioni come score.save() e vabbe comunque grazie

Ok meglio così!

L’importante è che funzioni :slight_smile:

Ciao

Ale

Ale mi puoi aiutare grazie scusa il disturbo 

ho questo codice che indica che quando lo tocco deve scomparire e a volte mi da errore

attempt to call method removeSelf quindi mi piacerebbe saper come toglierlo grazie se sai anche metodi alternativi per fare questo ok

function balla (self,event) if (event.phase == "began") then timer.performWithDelay(1, function() self:removeSelf() end ) score = score + 1 scoreNum.text = score\*scoreIncrease end end

Ciao,

dovrei vedere il resto del codice per dare indicazioni più precise.

Se non è necessario attendere 1 secondo prima di rimuovere puoi togliere timer.performWithDelay.

Inoltre se function balla() è un event handler e mi sembra di si, non vedo la necessità di passare due parametri (self, event).

Infine, ogni oggetto rimosso con removeSelf() deve essere posto a nil perchè la garbage collection lo rimuova definitivamente dalla memoria.

Potrebbe essere espressa meglio in questo modo (se è un event handler), ma è solo una mia ipotesi non potendo vedere il resto del codice.

  function balla (event)       local t = event.target        if (event.phase == "began") then            t:removeSelf()            t = nil            score = score + 1            scoreNum.text = score\*scoreIncrease     end   end  

Ciao

Ale

Ale sto usando texturepacker sei capace ad usarlo tu ?

avrei bissogno di un consiglio