Android, meglio 30 o 60 fps?
-
- Membro attivo
- Messaggi: 341
- Iscritto il: 03/09/2013, 13:26
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Contatta:
Re: Android, meglio 30 o 60 fps?
1- aggiungi l'opzione 30/60 fps
2- non può essere peggio, anzi, così puoi far funzionare il programma anche su cellulari più lenti
3- imposta un moltiplicatore generale per tutti i timer, gli spostamenti etcc pari a 1 se gli fps sono 30, pari a 0.5 se gli fps sono 60. Così otterrai lo stesso risultato.
Comunque mi spiace deluderti ma temo che quelli che tu chiami fps siano gli step della room
2- non può essere peggio, anzi, così puoi far funzionare il programma anche su cellulari più lenti
3- imposta un moltiplicatore generale per tutti i timer, gli spostamenti etcc pari a 1 se gli fps sono 30, pari a 0.5 se gli fps sono 60. Così otterrai lo stesso risultato.
Comunque mi spiace deluderti ma temo che quelli che tu chiami fps siano gli step della room
Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif
Spoiler
-
- GMI Advanced
- Messaggi: 2093
- Iscritto il: 19/12/2010, 16:17
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Standard
- Contatta:
Re: Android, meglio 30 o 60 fps?
Si è una costante, ma una cosa è togliere 4 a 30 fps un'altra è toglierlo a 60 fps.cp94 ha scritto:Ma modificando vspeed e hspeed, sei sicuro di dover variare anche il valore di gravity?
Alla fine gravity dovrebbe essere una costante, in teoria..
♥♥♥♥♥♥
♥♥♥♥♥♥
♥♥♥♥♥♥
Spoiler
- doom13
- Moderatore
- Messaggi: 2093
- Iscritto il: 31/08/2012, 15:40
- Specialità: Programmazione
- Uso: GM:Studio 2
- Contatta:
Re: Android, meglio 30 o 60 fps?
Quei valori non sono a caso, li ho scelti con delle prove per mantenere una velocità all'occhio simile sia a 30 fps che a 60 fps (si Barnack, lo so che in realtà è la room_speed che è ben differente dagli fps ma per comodità li considero la stessa cosa).Solid Snake ha scritto:Mi sembra strano che non funziona, il codice praticamente scala quei valori in base al room_speed:
Ci deve essere qualcos'altro che devi scalare, controlla!Codice: Seleziona tutto
gravity = 2;//60 fps //Se room_speed=60; gravity = 2 * (60/room_speed);//2*(60/60)=2*1=2 //Se room_speed=30 gravity = 2 * (60/room_speed);//2*(60/30)=2*2=4
Poi nel tuo codice:Codice: Seleziona tutto
if(room_speed == 30) { gravity = 4; vspeed = -26; hspeed = 6; } else if(room_speed == 60) { gravity = 2; vspeed = -18;//-26/2=-13 non -18 hspeed = 4;//6/2=3 non 4 }
Se divido semplicemente per due quei valori, non ottengo un salto uguale.
Quello che io vorrei è che a 30 fps il salto segue una certa traiettoria in un secondo, a 60 fps deve seguire la stessa traiettoria e sempre in un secondo.
Spoiler
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"
Re: Android, meglio 30 o 60 fps?
il deltatime considera il tempo trascorso dall'ultimo frame, quindi se fai i calcoli in base a quei valori (o deltatime medio) ti crei una costante moltiplicativa e la applichi a qualunque variabile dipendente dal tempo e eviti questi calcoli sbagliati sui presunti 30/60fps fissi (col metodo di solid snake su alcuni dispositivi il gioco girerà a 20 fps e lo vedranno a rallentatore)
-
- GMI Advanced
- Messaggi: 2093
- Iscritto il: 19/12/2010, 16:17
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Standard
- Contatta:
Re: Android, meglio 30 o 60 fps?
Si infatti il calcolo dovrebbe essere fatto col delta_time...
♥♥♥♥♥♥
♥♥♥♥♥♥
♥♥♥♥♥♥
Spoiler
- doom13
- Moderatore
- Messaggi: 2093
- Iscritto il: 31/08/2012, 15:40
- Specialità: Programmazione
- Uso: GM:Studio 2
- Contatta:
Re: Android, meglio 30 o 60 fps?
Allora, arieccomi.
Ho fatto qualche prova e non ho concluso niente. Prima di tutto ho sostituito le variabili built-in con alcune mie, hsp, vsp e grav che aggiorno ad ogni step in questo modo:
Al momento del salto setto in questo modo:
Poi calcolo una variabile delta: 60/1000000*delta_time
Se moltiplico i valori al momento del salto per delta succedono cose strane, per l'esattezza vengono fuori dei salti uno diverso dall'altro.
Cosa sbaglio? C'ho perso tutta la sera matonna
Ho fatto qualche prova e non ho concluso niente. Prima di tutto ho sostituito le variabili built-in con alcune mie, hsp, vsp e grav che aggiorno ad ogni step in questo modo:
Codice: Seleziona tutto
vsp += grav;
x += hsp;
y += vsp;
Codice: Seleziona tutto
grav = 2;
vsp = -18;
hsp = 4;
Se moltiplico i valori al momento del salto per delta succedono cose strane, per l'esattezza vengono fuori dei salti uno diverso dall'altro.
Cosa sbaglio? C'ho perso tutta la sera matonna
Spoiler
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"
-
- Membro
- Messaggi: 62
- Iscritto il: 08/06/2015, 12:18
Re: Android, meglio 30 o 60 fps?
Premessa:
Non so se può aiutare né se ci sei riuscito, ma ci provo, ho fatto un po' di prove e ci sono riuscito.
Allora, potresti rimettere le built-in (gravity,hspeed,vspeed), nel CREATE EVENT di ogni obj che ne ha bisogno; poi dichiari una variabile che rappresenti lo stesso valore (Es. per gravity sarà grav, per hspeed sarà hsp e per vspeed sarà vsp) Poi nello STEP EVENT dello stesso oggetto dichiari una variabile locale (che di solito io chiamo delta) e le assegni questo valore:
Poi assegni alle variabili "originali" il valore della variabile "clone" moltiplicato per la variabile delta.
Questo per ogni oggetto che usa variabili dipendenti dalla room_speed. {Esempio pratico qui sotto}
CREATE EVENT
STEP EVENT
And so on. Spero di esserti stato d'aiuto
Non so se può aiutare né se ci sei riuscito, ma ci provo, ho fatto un po' di prove e ci sono riuscito.
Allora, potresti rimettere le built-in (gravity,hspeed,vspeed), nel CREATE EVENT di ogni obj che ne ha bisogno; poi dichiari una variabile che rappresenti lo stesso valore (Es. per gravity sarà grav, per hspeed sarà hsp e per vspeed sarà vsp) Poi nello STEP EVENT dello stesso oggetto dichiari una variabile locale (che di solito io chiamo delta) e le assegni questo valore:
Codice: Seleziona tutto
var delta ;
delta = 60/1000000 * delta_time ;
Questo per ogni oggetto che usa variabili dipendenti dalla room_speed. {Esempio pratico qui sotto}
CREATE EVENT
Codice: Seleziona tutto
///Ovviamente sostituisci i miei valori coi tuoi
//Variabili "originali"
gravity = 0.2 ;
hspeed = 4 ;
vspeed = 5;
//Variabili "clone"
grav = 0.2 ; //stesso valore di gravity
hsp = 4 ; //stesso valore di hspeed
vsp = 5 ; //stesso valore di vspeed
Codice: Seleziona tutto
var delta ;
delta = 60/1000000 * delta_time ;
gravity = grav * delta ;
hspeed = hsp * delta ;
vspeed = vsp * delta ;
- doom13
- Moderatore
- Messaggi: 2093
- Iscritto il: 31/08/2012, 15:40
- Specialità: Programmazione
- Uso: GM:Studio 2
- Contatta:
Re: Android, meglio 30 o 60 fps?
Grazie del suggerimento kami. No, non ho ancora risolto perchè sono stato impegnato in altro. Appena posso proverò e ti farò sapere.
Spoiler
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"
-
- Membro
- Messaggi: 62
- Iscritto il: 08/06/2015, 12:18
Re: Android, meglio 30 o 60 fps?
Okappa, figurati, fammu sapere
Chi c’è in linea
Visitano il forum: Bing [Bot] e 45 ospiti