Italian La prossima settimana, VACANZE... ma per ora vado avanti

CyclopDroid

Well-Known Member
Licensed User
Longtime User
Maremma bucaiola! :D
Finito una App, eccomi alle prese con quella che mi sta creando più grattacapi, ovvero, "Parolando".
Sembra funzionare tutto bene ma, ora, mi stò impappolando con le animazioni degli sprite che dovrebbero complicare il gioco.
Mi trovo alle prese con il fantasmino che, messo all'interno di una sub (che poi utilizzerò anche per gli alti passando il valore personaggio), non ne vuole sapere di farsi vedere quando si dirigge verso la zona scelta.
Ancora la debbo finire ma, almeno il movimento lo dovrebbe fare...invece, se elimino il
B4X:
 ImgGhost.Visible=False
(che si trova alla fine della Sub), o vedo apparire immediatamente sulla casella.
Ho provato a mettere una pausa verso la fine del ciclo ma muove solo gli occhi e il corpo e bocca, ma non avanza.
Il richiamo di questa Sub è all'interno di un'altra Sub, quella del Timer_tick.
Il movimento del fantasmino è all'interno di un ciclo FOR:


B4X:
Sub Ghost(numWord As Int)
    ' muove il fatasmino verso le lettere scelte e le macchia
    Dim xStart,GhDirection As Int
    Dim XStep As Int
    Dim GhostType As String
    GhostType="Ghost"
    Dim GhEye,GhSmile,GhBody, tmp,tmp2,GhPausa As Int
    XStep=1 'Velocità fantasmino
    GhDirection=1

    tmp=0
    tmp2=0
    GhPausa=Rnd(1,10)

    'Muovo fantasmino
    ImgGhost.Left=-14%x
    ImgGhost.Top=imvHeight-ImgGhost.height
    ImgGhost.Height=21%y
    ImgGhost.Width=14%x
    ImgGhost.Visible=True


    For k=0 To UpBox(numWord).Left Step XStep
        Log("FANTASMA POS:" & k)
        'Occhi
        GhEye=Rnd(1,10)
        If GhEye<3 Then GhEye=0 Else GhEye=1
        'Corpo
        tmp=tmp+1
        If tmp>4 Then
            If GhBody=0 Then
                GhBody=1
            Else
                GhBody=0
            End If
        tmp=0
        End If
        'Bocca
        If tmp2=0 Then GhSmile=Rnd(1,10)
        If GhSmile<3 Then
            GhSmile=1
            tmp2=tmp2+1
        Else
            GhSmile=0
        End If
        If tmp2>0 AND tmp2>=GhPausa Then
            tmp2=0
        Else
            '"Uuuuuhhhhhh"
        End If
        ImgGhost.Top=Panel1.height/2
        GhostType="Ghost" & GhEye & GhSmile & GhBody & GhDirection & ".png"
        ImgGhost.Bitmap=LoadBitmap(File.DirAssets,GhostType)
        ImgGhost.Left=k-2%x
   Next
   GhDirection=0
   ImgGhost.Visible=False 
End Sub

Potrebbe essere perché il richiamo è all'interno de _tick?

...Ho provato anche a dichiarare XStart come Double, assegnandogli .1 ma, quando arriva nel ciclo FOR, dove è presente lo STEP... non si fermama esce fuori immediatamente dal ciclo :eek::confused:
Ma i valori delle immagini (in questo caso LEFT), non accettano i Double?
 
Last edited:

CyclopDroid

Well-Known Member
Licensed User
Longtime User
OK, mi sono accorto che il problema deriva dalla velocità della CPU e, quindi, non si vede il movimento.
Ho inserito delle pause di 0.1 secodo ma, ho paura che se il gioco venga installato su smath più potenti, o meno potenti, il risultato non sarà lo stesso per entrambi.
C'è un modo per calcolare la velocità del telefono e trovare la pausa giusta da passare?:confused:

Io, per ora, uso questa funzione per le Pause, passandogli 0.1:


B4X:
Sub Attendi(Secondi As Double)
  Dim Ti As Long
  Ti = DateTime.Now + (Secondi * 1000)
  Do While DateTime.Now < Ti
      DoEvents
  Loop
End Sub
 

CyclopDroid

Well-Known Member
Licensed User
Longtime User
Buuaaahahh!!!! :(:(:(:(
Versione PickUP FREE......0 download!!!!!:eek::eek::eek::eek::eek::eek::eek::eek::eek::(:(:(:(:(:(:(:(:(
Come diamine fare per promuoverla senza spendere?

PS: Manco voi l'avete provata :(:(
 

LucaMs

Expert
Licensed User
Longtime User
Premessa: appena sveglio e con simpatico mal di testa.

Dato l'argomento tecnico, dovrebbe rispondere Umberto HHHUUUUUUUUUUU :D

Secondo me ti ha funzionato, dopo, non per la pausa, ma per il doevents che sta dentro la pausa. Prova a metterlo dopo
ImgGhost.Left=k-2%x (il DoEvents) senza usare la pausa.
 

LucaMs

Expert
Licensed User
Longtime User
Come diamine fare per promuoverla

Eh, questo è un altro punto dolente (oltre alla pirateria: ieri sono stato tutto il giorno a pensare come affrontare questo problema e ne sono uscito malconcio :)).

Ci sono milioni di app so Google Play: come può capitare un utente sulla tua? Io ricordo che faticai a trovarle pur conoscendone il nome!

Non so, su questo sito si è discusso molto anche di questo.

Probabilmente un modo sarebbe quello di sfruttare Facebook (magari anche Twitter, che io non conosco affatto)
 
D

Deleted member 103

Guest
OK, mi sono accorto che il problema deriva dalla velocità della CPU e, quindi, non si vede il movimento.
Ho inserito delle pause di 0.1 secodo ma, ho paura che se il gioco venga installato su smath più potenti, o meno potenti, il risultato non sarà lo stesso per entrambi.
C'è un modo per calcolare la velocità del telefono e trovare la pausa giusta da passare?:confused:

Io, per ora, uso questa funzione per le Pause, passandogli 0.1:


B4X:
Sub Attendi(Secondi As Double)
  Dim Ti As Long
  Ti = DateTime.Now + (Secondi * 1000)
  Do While DateTime.Now < Ti
      DoEvents
  Loop
End Sub

Io uso per la pausa questo Sub e questo funziona di sicuro su tutti i dispositivi.
B4X:
Dim Thread1 As Thread

Sub Attendi(Secondi As Double)
    Thread1.Sleep(Secondi * 1000)
End Sub
 

LucaMs

Expert
Licensed User
Longtime User
Manco voi l'avete provata

Installata ma ancora non mi funziona.

Mi da l'errore dell'ultima installazione che avevo fatto, cioè mi dice che non c'è spazio sulla Home, che invece è vuota (in quel punto).
La segnala ancora come 5x1.

Poi, è un po' allarmante il fatto che ti dica di concedergli i permessi circa i numeri chiamanti e, soprattutto, che potrebbero essere addebitati costi telefonici. Questo potrebbe far desistere gli "acquirenti"; probabilmente dipende dall'utilizzo della libreria Phone e dai permessi che questa aggiungere al Manifest.
 

CyclopDroid

Well-Known Member
Licensed User
Longtime User
Vabbè, ma quello fa parte delle librerie... che posso farci?:(
Per il fatto del 5x1 è sempre strano :confused:
 

LucaMs

Expert
Licensed User
Longtime User
si, la "cuccai" :p

Probabilmente la userò, ma ieri ho passato tutta la giornata a cercare soluzioni su internet (soprattutto per sw .net) e mi sono cadute le braccia.

Del resto, basta pensare che nemmeno Microsoft ha soluzioni definitive contro la pirateria, figuriamoci un programmatorino scarso come me!
 
Top