[Botta&Risposta]Barra di caricamento
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
[Botta&Risposta]Barra di caricamento
Ho preparato un piccolo esempio che mostra come creare una barra di caricamento che si aggiorna durante un processo lungo e effettuato in un singolo step.
Generalmente se si vuole mostrare l'avanzamento di un qualche tipo di processo non é necessario complicarsi la vita, basta inserire un draw_healthbar o qualcosa di simile in draw e game maker mostrerà la barra normalmente come abbiamo definito. Questo però funziona esclusivamente nel caso in cui il gioco non viene bloccato per eseguire un certo processo, ovvero gli steps vengono eseguiti normalmente così come il draw.
Cosa succede però se vogliamo, per questioni di velocità per esempio, eseguire tutto il processo in un unico step? Game maker non raggiungerà mai l'evento draw finché il processo non sarà terminato, rendendo impossibile l'aggiornamento di una barra di caricamento a livello visuale. Fortunatamente si può ovviare a questo problema inserendo all'interno del processo delle istruzioni di disegno e di screen_refresh.
L'esempio vuole mostrare l'avanzamento di un processo lungo eseguito in un unico step, tramite una progress bar. Il processo in questo caso é la conversione di un'immagine nel suo negativo usando surface_getpixel, funzione nota per la sua lentezza.
Qui il download: SCARICA
P.S: si può disegnare una barra di caricamento molto facilmente tramite draw_healthbar, l'esempio mostra però qualcosa di un po' più complicato ma graficamente più accattivante mediante uno sprite
Generalmente se si vuole mostrare l'avanzamento di un qualche tipo di processo non é necessario complicarsi la vita, basta inserire un draw_healthbar o qualcosa di simile in draw e game maker mostrerà la barra normalmente come abbiamo definito. Questo però funziona esclusivamente nel caso in cui il gioco non viene bloccato per eseguire un certo processo, ovvero gli steps vengono eseguiti normalmente così come il draw.
Cosa succede però se vogliamo, per questioni di velocità per esempio, eseguire tutto il processo in un unico step? Game maker non raggiungerà mai l'evento draw finché il processo non sarà terminato, rendendo impossibile l'aggiornamento di una barra di caricamento a livello visuale. Fortunatamente si può ovviare a questo problema inserendo all'interno del processo delle istruzioni di disegno e di screen_refresh.
L'esempio vuole mostrare l'avanzamento di un processo lungo eseguito in un unico step, tramite una progress bar. Il processo in questo caso é la conversione di un'immagine nel suo negativo usando surface_getpixel, funzione nota per la sua lentezza.
Qui il download: SCARICA
P.S: si può disegnare una barra di caricamento molto facilmente tramite draw_healthbar, l'esempio mostra però qualcosa di un po' più complicato ma graficamente più accattivante mediante uno sprite
- enick
- GMI VIP
- Messaggi: 3749
- Iscritto il: 26/06/2011, 19:34
- Specialità: 39dll e 3D
- Località: Sardegna
- Contatta:
Re: [Botta&Risposta]Barra di caricamento
davvero interessante è grazioso per gli occhi piccola bug(credo) la percentuale viene scritta male a volte il numero è incomprensibile qusi come se fosse disegnato piu volte su se stesso,magari è un problema di font o un problema del mio pc
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: [Botta&Risposta]Barra di caricamento
Strano a me non da quel problema. viene disegnato piu volte ma ogni volta cancellato dalla barra che viene disegnata sopra a quello vecchio
- innominato
- Membro super
- Messaggi: 808
- Iscritto il: 26/08/2009, 16:19
- Contatta:
Re: [Botta&Risposta]Barra di caricamento
succede anche a me.... l'immagine inoltre, quando premo invio e successivamente spazio, si spezzetta e riparte da capoenick ha scritto:davvero interessante è grazioso per gli occhi piccola bug(credo) la percentuale viene scritta male a volte il numero è incomprensibile qusi come se fosse disegnato piu volte su se stesso,magari è un problema di font o un problema del mio pc
Spoiler
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: [Botta&Risposta]Barra di caricamento
Strano che abbiamo risultati diversi. che so avete? avete usato il convertitore per gm8.0?
lo spezzettamento è normale, premendo invio si salva l immagine com'è e con spazio ricomincia da zero. è per semplicita, lo scopo dell'esempio è la barra non la conversione dell immagine
lo spezzettamento è normale, premendo invio si salva l immagine com'è e con spazio ricomincia da zero. è per semplicita, lo scopo dell'esempio è la barra non la conversione dell immagine
- enick
- GMI VIP
- Messaggi: 3749
- Iscritto il: 26/06/2011, 19:34
- Specialità: 39dll e 3D
- Località: Sardegna
- Contatta:
Re: [Botta&Risposta]Barra di caricamento
io l ho provato su w7 direttamente su gm8.1
- innominato
- Membro super
- Messaggi: 808
- Iscritto il: 26/08/2009, 16:19
- Contatta:
Re: [Botta&Risposta]Barra di caricamento
anche ioenick ha scritto:io l ho provato su w7 direttamente su gm8.1
Spoiler
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: [Botta&Risposta]Barra di caricamento
Come me.... non so magari s non riesco a riprpdurre il problema non ho idea di come risolvere. ma la percentale la vedete dentro alla barra?
- enick
- GMI VIP
- Messaggi: 3749
- Iscritto il: 26/06/2011, 19:34
- Specialità: 39dll e 3D
- Località: Sardegna
- Contatta:
Re: [Botta&Risposta]Barra di caricamento
si homu,mi ricordo che l'unica o quasi percentuale leggibile è 100%
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: [Botta&Risposta]Barra di caricamento
Boh non ho idee... invoco l'aiuto di baron o qualche altro guru. ho un idea di come risolvere ma è un po' limitativa
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: [Botta&Risposta]Barra di caricamento
Non posso esservi di aiuto visto che mi funziona perfettamente (XP SP3 gm8.1)
Per caso usato il beta o stable channel?
Magari una versione beta da problemi, io sto su stable.
Per caso usato il beta o stable channel?
Magari una versione beta da problemi, io sto su stable.
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: [Botta&Risposta]Barra di caricamento
Provo a fare un exe cosí vediamo se é un problema di versione o meno...
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: [Botta&Risposta]Barra di caricamento
A chi non funzionava: provate per favore l'exe (scarica) e mi dite se avete lo stesso problema?
Grazie
Grazie
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: [Botta&Risposta]Barra di caricamento
é una cosa che mi sembra davvero assurda, soprattutto per il fatto che ad alcuni va e ad altri no. Intanto potete provare a riscaricare una nuova versione dell'editabile, é probabile che con un piccolo accorgimento (brutto, che non dovrebbe essere assolutamente necessario) il problema vada a posto.
Fatemi sapere p.f. So che non é questione di vita o di morte ma mi intriga capire cosa succede.
Fatemi sapere p.f. So che non é questione di vita o di morte ma mi intriga capire cosa succede.
- enick
- GMI VIP
- Messaggi: 3749
- Iscritto il: 26/06/2011, 19:34
- Specialità: 39dll e 3D
- Località: Sardegna
- Contatta:
Re: [Botta&Risposta]Barra di caricamento
provato l exe,0 e 100 si vedono dopo da 10% in su si ingrossano,le scritte si vedono bene magari è un problema di font ???
Re: [Botta&Risposta]Barra di caricamento
idemenick ha scritto:provato l exe,0 e 100 si vedono dopo da 10% in su si ingrossano,le scritte si vedono bene magari è un problema di font ???
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: [Botta&Risposta]Barra di caricamento
Problema risolto, era un errore mio ho scambiato due funzioni, che di conseguenza si sono trovate valori assurdi. Evidentemente questo ha creato un problema che variava a seconda della scheda video rendendone difficile l'identificazione.
Riscaricate pure il file e dovreste vedere l'esempio correttamente.
Riscaricate pure il file e dovreste vedere l'esempio correttamente.
- BaronVsCorsar
- GMI VIP
- Messaggi: 4699
- Iscritto il: 14/02/2004, 12:05
- Specialità: Saccenza
- Uso: GameMaker 8.1
- Località: Ferrara
- Contatta:
Re: [Botta&Risposta]Barra di caricamento
ormai è risolto...
comunque dico la mia.
questi comportamenti "anomali" che variano da pc a pc li ho riscontrati solo utilizzando le surface.
in particolare in alcune schede grafiche la surface appena creata è comunque "pulita" in automatico, in altre schede no, e contiene immagini più o meno casuali.
Nel manuale cmq è detto che le surface devono essere pulite da parte dell'utente prima di essere utilizzate.
Non so se fosse qualche cosa del genere...
comunque dico la mia.
questi comportamenti "anomali" che variano da pc a pc li ho riscontrati solo utilizzando le surface.
in particolare in alcune schede grafiche la surface appena creata è comunque "pulita" in automatico, in altre schede no, e contiene immagini più o meno casuali.
Nel manuale cmq è detto che le surface devono essere pulite da parte dell'utente prima di essere utilizzate.
Non so se fosse qualche cosa del genere...
Schiva questo - http:\\baronvscorsar.altervista.org
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?
Re: [Botta&Risposta]Barra di caricamento
Questo problema esiste, ma non era il caso di homunculus.BaronVsCorsar ha scritto:ormai è risolto...
comunque dico la mia.
questi comportamenti "anomali" che variano da pc a pc li ho riscontrati solo utilizzando le surface.
in particolare in alcune schede grafiche la surface appena creata è comunque "pulita" in automatico, in altre schede no, e contiene immagini più o meno casuali.
Nel manuale cmq è detto che le surface devono essere pulite da parte dell'utente prima di essere utilizzate.
Non so se fosse qualche cosa del genere...
Il funzionamento su alcuni pc era dovuto al supporto della scheda video della ripetizione di una texture e in altri no.(spiegatomi da homunculus)
Infatti la hsize della barra doveva essere in % mentre usando la funzione sbagliata risultavano valori al di sopra di 100, infatti i pc che supportavano ripetizione funzionavano mentre gli altri no
Chi c’è in linea
Visitano il forum: Nessuno e 38 ospiti