Italian List to array (e presentazioni)

StefanoAccorsi

Member
Licensed User
Prima di tutto un saluto al gruppo italiano di sviluppatori B4A!

Sono entrato in questo (assolutamente sconosciuto fino a poche settimane fa) bellissimo mondo: da tempo cercavo un ambiente per sviluppare su Android in maniera "umana" (purtroppo lo stile standard, per il quale mi sono sorbito ben due corsi, non è mai stato nelle mi corde, così come i vari strumenti per sviluppo cross-platform che ho esplorato).

Ma sto divagando, magari avrò modo in seguito (sempre che vi interessi anche solo minimamente) di parlare di me.

Dopo un po' di studio "generale" di B4A sto provando a cimentarmi nello studio di libGDX (non certo banale soprattutto per uno come me che non ha mai esplorato lo sviluppo di giochi con nessun'altra piattaforma). Ho provato prima AcceleratedSurface e devo dire che per le mie necessità sarebbe sufficiente ... se non fosse (mi sbaglio?) che non è possibile gestire le gesture (swipe, drag, ...) ma solo il touch.

Per lo studio, quindi, sto seguendo i tutorial di GameFromScratch che sono ovviamente basati su Java.

Con i primi nessun problema nella traduzione in B4A, ma passando ai più complessi ecco che iniziano i problemi.

La prima domanda: c'è qualche tutorial o strada migliore di questa che possa aiutarmi?

Se no, ecco il problema a livello di codice. Sono alle prese con una Animation e la traduzione di:

B4X:
animation = new Animation(1/15f, textureAtlas.getRegions());

in

B4X:
animation.Initialize(1.0/15.0, atlas.GetAllRegions)

ma animation.Initialize si aspetta come secondo argomento un array di lgTextureRegion mentre atlas.GetAllRegions restituisce una lista di object che sono lgTextureRegion. Effettuando ricerche sul forum mi pare di aver letto che non c'è problema nel passare una lista laddove ci si aspetta un array ma evidentemente mi manca qualcosa ...

Sapete aiutarmi? Grazie e ancora un saluto a tutti.
 

LucaMs

Expert
Licensed User
Longtime User
Ciao, benvenuto.

Piccola premessa: non ti conveniva continuare a fare l'attore? :p

Certo hai iniziato con qualcosa di semplice!

Di quella roba ne so praticamente niente.

Sicuro che l'errore che ricevi sia dovuto al passare una List anziché un array? Se sì, puoi provare:

Dim Regions() As "qualcosa che io non so" = atlasGetAllRegions
animation.Initialize(1.0/15.0, Regions)
 

StefanoAccorsi

Member
Licensed User
Ciao, innanzitutto chi ti ha detto che non possa fare attore e programmatore insieme? :D

Poi ... si beh libGDX non è semplice per nulla, o quanto meno lo è se leggo il tutorial in Java, ma la traduzione in B4A, nonostante l'ottima guida di Informatix, è quanto mai complicata; uniscici l'impossibilità di fare il debug ...

Ad ogni modo l'errore che ricevevo era effettivamente legato solo alla incompatibilità di tipi, tanto che non compilava proprio. Avevo risolto scrivendo una Sub di conversione manuale da List ad Array ma provo subito anche il tuo suggerimento.

Per il resto, se qualcuno dovesse conoscere una strada migliore per imparare libGDX con B4A in mente ... lo prego di dirmelo!! Grazie.
 
Last edited:

StefanoAccorsi

Member
Licensed User
Fra parentesi ho provato e ahimè
B4X:
Dim KeyFrames() As lgTextureRegion = atlas.GetAllRegions
quando GetAllRegions ritorna una lista di lgTextureRegion non funziona: in fase di compilazione mi dice comunque
B4X:
src\b4a\example\main.java:375: error: inconvertible types
_keyframes = (anywheresoftware.b4a.libgdx.graphics.lgTextureRegion[])(mostCurrent._atlas.GetAllRegions().getObject());
                                                                     ^
  required: lgTextureRegion[]
  found:    List<Object>

Me ne sono fatto una ragione ed ho fatto una semplice Sub ListToArray ma non funziona ugualmente ...
 
Top