Ultimo (Member)
Guru
Messaggi: 877
Iscritto: 22/05/2010
|
@Carlo
Ho visto, sto preparando la nuova versione con la possibilità di scelta delle immagini, con
i due tipi di animazione a loro volta selezionabili.
ho notato i bug
If ok Then GOTO Avanza else GOTO Inizia
|
|
Carlo (Member)
Guru
Messaggi: 1344
Iscritto: 29/01/2018
|
@ Ultimo
Ti posto una versione funzionante (sembra)
Ritengo che il problema scaturisca dal DoEvents, che quando incontra uno sleep(xx) permette l'intercettazione della tastiera avviando una nuova verifica prima ancora che sia conclusa la precedente.
Remmando tutti i DoEvents il problema è scomparso, ora se si pigia ripetutamente le frecce, i tasti si accumulano nel buffer e vengono eseguiti senza malfunzionamenti.
Se hai un'altra interpretazione, per i bug, condividila, grazie.
Ultima modifica effettuata da Carlo il 23/05/2018 alle 1:55
in programmazione tutto è permesso |
|
Carlo (Member)
Guru
Messaggi: 1344
Iscritto: 29/01/2018
|
Modifica routine animazione inserito Try Catch, per evitare quando si sceglie Back_1_Passo di avere un errore se Pbx.Image è null
Codice sorgente - presumibilmente VB.NET |
Public Sub Animazione_Pbx(ByRef Pbx As PictureBox) 'Movimento animato di una PictureBox. If TipoGrafica = 1 Then If Pbx Is Nothing Then Exit Sub End If InMovimento = True ' evita errore Pbx.BringToFront() Dim Location_Pbx As Point Dim vn1 As Int32 = 3 Dim vn2 As Int32 = 1 For j As Int32 = 1 To 3 Pbx.Width -= vn1 Pbx.Height -= vn1 Thread.Sleep(1) Location_Pbx = New Point(Pbx.Left + vn2, Pbx.Top + vn2) Pbx.Location = Location_Pbx Next j For i As Int32 = 1 To 3 Pbx.Width += vn1 Pbx.Height += vn1 Thread.Sleep(30) Location_Pbx = New Point(Pbx.Left - vn2, Pbx.Top - vn2) Pbx.Location = Location_Pbx Next i Else Try InMovimento = True ' evita errore Dim Immagine As Bitmap = Pbx.Image Pbx.Image = Nothing Pbx.Refresh() For i = -84 To 0 Using PbxGraphics As Graphics = Pbx.CreateGraphics() PbxGraphics.DrawImage(Immagine, 0, i, 84, 84) End Using Thread.Sleep(2) Next i Pbx.Image = Immagine Pbx.Refresh() Catch End Try End If InMovimento = False ' evita errore End Sub
|
in programmazione tutto è permesso |
|
Ultimo (Member)
Guru
Messaggi: 877
Iscritto: 22/05/2010
|
@Carlo
Ok sto provando il codice
If ok Then GOTO Avanza else GOTO Inizia
|
|
Ultimo (Member)
Guru
Messaggi: 877
Iscritto: 22/05/2010
|
@Carlo
Ho apportato le modifiche
sembra non dare problemi
allego la versione 8.3.3
verifica si può inserire questa nuova versione
If ok Then GOTO Avanza else GOTO Inizia
|
|
Ultimo (Member)
Guru
Messaggi: 877
Iscritto: 22/05/2010
|
@Carlo
una correzione al codice per problemi di tempo esecuzione audio
Codice sorgente - presumibilmente VB.NET |
Public Sub Verifica_Ultima_Potenza(ByVal P As Int32) 'Application.DoEvents() Thread.Sleep(200) 'minimo 200 per sentire l'audio. Ultima_Potenza = P If Ultima_Potenza > Max_Potenza_Raggiunta Then Max_Potenza_Raggiunta = Ultima_Potenza End If If Max_Potenza_Raggiunta = 2048 And Obiettivi_Punteggio(0) = 2048 Then Suono4.play() Obiettivi_Punteggio(0) = 0 End If If Max_Potenza_Raggiunta = 4096 And Obiettivi_Punteggio(1) = 4096 Then Suono4.play() Obiettivi_Punteggio(1) = 0 End If If Max_Potenza_Raggiunta = 8192 And Obiettivi_Punteggio(2) = 8192 Then Suono4.play() Obiettivi_Punteggio(2) = 0 End If 'Application.DoEvents() End Sub
|
Thread.Sleep(200) 'minimo 200 per sentire l'audio.
If ok Then GOTO Avanza else GOTO Inizia
|
|
Carlo (Member)
Guru
Messaggi: 1344
Iscritto: 29/01/2018
|
Postato originariamente da Ultimo:
una correzione al codice per problemi di tempo esecuzione audio
Thread.Sleep(200) 'minimo 200 per sentire l'audio. |
1) inserito sleep(200)
2) aggiunta animazione 3
3) ora quando si cambia la grafica, il cambio si vede subito
4) qualche aggiustamento su MySettings, per un corretto funzionamento anche al primo utilizzo del programma.
5) c'era rimasto un DoEvents su: Private Sub But_R_Click, se si cliccava ripetutamente a destra la somma si bloccava
Ho visto le tue modifiche, forse ci siamo, mi sembra che funziona anche se qualche caprone sbatte la tastiera per terra...
Allegato: 2048_the_game_v8.4.4.zip (Importante non lasciare spazi sul nome, altrimenti quando si scarica si perde l'estensione) Ultima modifica effettuata da Carlo il 24/05/2018 alle 2:50
in programmazione tutto è permesso |
|
Ultimo (Member)
Guru
Messaggi: 877
Iscritto: 22/05/2010
|
Postato originariamente da Carlo:
Postato originariamente da Ultimo:
una correzione al codice per problemi di tempo esecuzione audio
Thread.Sleep(200) 'minimo 200 per sentire l'audio. |
1) inserito sleep(200)
2) aggiunta animazione 3
3) ora quando si cambia la grafica, il cambio si vede subito
4) qualche aggiustamento su MySettings, per un corretto funzionamento anche al primo utilizzo del programma.
5) c'era rimasto un DoEvents su: Private Sub But_R_Click, se si cliccava ripetutamente a destra la somma si bloccava
Ho visto le tue modifiche, forse ci siamo, mi sembra che funziona anche se qualche caprone sbatte la tastiera per terra...
Allegato: 2048_the_game_v8.4.4.zip (Importante non lasciare spazi sul nome, altrimenti quando si scarica si perde l'estensione) |
Appena posso la inserisco, controllo le modifiche, siamo già alla 8.4.4
If ok Then GOTO Avanza else GOTO Inizia
|
|