Rpg˛S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Vai al contenuto

Rpg˛S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Screen Contest #90

Kamikun






  • Si prega di effettuare il log in prima di rispondere
Funzione Wait in rgss2

    adelphos
  • Nuovo Arrivato

  • Utenti
  • Rens: 0
  • 0
  • Stelletta
  • 94 messaggi
  • Sesso:Maschio
  • Abilitā:Novizio

#1 Inviato 25 July 2011 - 11:53 AM

Salve, avrei bisogno di una funzione o di una serie di istruzioni che consentano di far aspettare un tot di frames, praticamente che svolga la stessa funzione disponibile quando si crea un evento, solo che appunto mi servirebbe da inserire all'interno di uno script (in modo che tra un'istruzione e l'altra per esempio passi 1 secondo).
Grazie.
Progetto a cui stiamo lavorando:
sonlogo1.png
Rilasciata la DEMO del CAPITOLO 2.
Banner.png

    Valentino
  • Utente avanzato

  • Utenti
  • Rens: 180
  • 0
  • StellettaStellettaStelletta
  • 464 messaggi
  • Sesso:Maschio
  • Provenienza:Maniago
  • Abilitā:Esperto

#2 Inviato 25 July 2011 - 12:11 PM

Basta creare un ciclo for in questa maniera

for i in 1...60
Graphics.update
end

al posto di 60 metti i frame che vuoi aspettare ricordando che 60 frames in rpg maker vx sono 1 secondo. ;)

    adelphos
  • Nuovo Arrivato

  • Utenti
  • Rens: 0
  • 0
  • Stelletta
  • 94 messaggi
  • Sesso:Maschio
  • Abilitā:Novizio

#3 Inviato 25 July 2011 - 13:31 PM

Grazie!!! Non so se era voluto o meno l'esempio con Graphics.update (o se invece era proprio necessario) ma in questo modo mi hai fatto davvero un favore, infatti avevo giā provato pių volte con il ciclo for ma sembrava che ci passasse davvero poco tempo dentro! Grazie ancora :sisi:
Progetto a cui stiamo lavorando:
sonlogo1.png
Rilasciata la DEMO del CAPITOLO 2.
Banner.png

    Valentino
  • Utente avanzato

  • Utenti
  • Rens: 180
  • 0
  • StellettaStellettaStelletta
  • 464 messaggi
  • Sesso:Maschio
  • Provenienza:Maniago
  • Abilitā:Esperto

#4 Inviato 25 July 2011 - 19:32 PM

č necessario XD Graphics.update fa passare un frame... :)

    Rai89
  • Nuovo Arrivato

  • Utenti
  • Rens: 0
  • 0
  • Stelletta
  • 15 messaggi

#5 Inviato 10 May 2012 - 16:06 PM

Il Wait di un processo parallelo invece come si potrebbe fare a script?
Mi spiego meglio, provando con Graphics.update viene quel wait che blocca tutto, anche i movimenti e l'evento in corso.
Invece quando un wait è chiamato nell'evento parallelo quello si limita a bloccare l'evento parallalo lasciando scorrere tutto il resto.
Vorrei ottenere questo in script...
Il problema è forse che gli script non scorrono in parallelo rispetto agli eventi? poptrebbe essere per questo?

Immagine inserita


    Guest_clyde_*
  • Guests
  • Rens:

#6 Inviato 10 May 2012 - 16:25 PM

Correggo in ritardo Valentino osservando che in RGSS2 esiste il comando specifico: Graphics.wait(duration) che è comunque equivalente a quanto suggerito da lui.
Il discorso dei processi paralleli è questo: sono eseguiti parallelamente al resto. Ecco cosa succede quando usi un wait nel Processo Parallelo: (PP= Processo Parallelo IR=Il Resto)

PP-------------WAIT_________--------------------
IR-------------------------------------------------------

    Guardian of Irael
  • Coniglietto Rosso

  • Rpg˛S Admin
  • Rens: 195
  • 19
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 58413 messaggi
  • Sesso:Maschio
  • Provenienza:Bagnaia (Viterbo)
  • Abilitā:Apprendista


#7 Inviato 10 May 2012 - 16:43 PM

@Rai: potresti attivare un evento non in processo parallelo e scrivere lì il wait, quello blocca tutto! ^ ^

(\_/)
(^ ^) <----coniglietto rosso, me!     
(> <)

 
Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^
 
KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^
 
FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^  
 
REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^

Spoiler


    Rai89
  • Nuovo Arrivato

  • Utenti
  • Rens: 0
  • 0
  • Stelletta
  • 15 messaggi

#8 Inviato 10 May 2012 - 17:35 PM

vorrei evitare proprio i processi paralleli, far scorrere lo script in parallelo all'evento e, a quel punto, usare un wait nello script che lascia libero di agire il giocatore, se si può fare. non se se si capisce, nel caso cerco di spiegarmi meglio.

Immagine inserita


    giver
  • Alex (Rm2k)

  • Utenti
  • Rens: 121
  • 0
  • StellettaStellettaStellettaStellettaStelletta
  • 1291 messaggi
  • Sesso:Maschio
  • Provenienza:The Creept - Room for Strangeness
  • Abilitā:Esperto

#9 Inviato 10 May 2012 - 17:47 PM

Per quello basta un contatore che si decrementa ad ogni update dello script, ed esegue il resto dell'update solo se quando azzerato, magari ri-settandolo al valore di "pausa" desiderata all'interno del codice eseguito a contatore pari a 0, ovviamente . . .

Spoiler

    Rai89
  • Nuovo Arrivato

  • Utenti
  • Rens: 0
  • 0
  • Stelletta
  • 15 messaggi

#10 Inviato 10 May 2012 - 18:08 PM

ç.ç è tutto il giorno che provo così, perchè non va?

qualcosa del tipo

for i = 1..@tempo

end

oppure

i=0
while i < @tempo
i+=1
end

Me li salta a pier pari, sono troppo rapidi? ho provato con valori anche di 10000, ma li supera senza problemi
Ho anche provato a mettere un if dentro i cicli sperando che quel controollo sia un po' lento e nel complesso risulti un certo ritardo, niente

Immagine inserita


    giver
  • Alex (Rm2k)

  • Utenti
  • Rens: 121
  • 0
  • StellettaStellettaStellettaStellettaStelletta
  • 1291 messaggi
  • Sesso:Maschio
  • Provenienza:The Creept - Room for Strangeness
  • Abilitā:Esperto

#11 Inviato 10 May 2012 - 18:29 PM

Più simile a:

@pause_counter -= 1
return unless @pause_counter == 0
@pause_counter = PAUSE_TIME
. . .
codice da eseguire quando pausa finita
. . .

Spoiler

    Guardian of Irael
  • Coniglietto Rosso

  • Rpg˛S Admin
  • Rens: 195
  • 19
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 58413 messaggi
  • Sesso:Maschio
  • Provenienza:Bagnaia (Viterbo)
  • Abilitā:Apprendista


#12 Inviato 10 May 2012 - 18:29 PM

Ah scusa avevo capito che volevi il processo parallelo insieme ad un wait che bloccava tutto! XD
^ ^

(\_/)
(^ ^) <----coniglietto rosso, me!     
(> <)

 
Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^
 
KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^
 
FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^  
 
REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^

Spoiler


    Guest_clyde_*
  • Guests
  • Rens:

#13 Inviato 10 May 2012 - 18:32 PM

Ti stai spiegando malissimo! L'unica cosa che ho capito è che non stiamo capendo cosa vuoi! Diamine quando parli di script ti riferisci a uno script nello script editor o al comando evento script?

    Rai89
  • Nuovo Arrivato

  • Utenti
  • Rens: 0
  • 0
  • Stelletta
  • 15 messaggi

#14 Inviato 10 May 2012 - 19:45 PM

Allora...
Ho un evento su mappa.
Nel evento, chiamo un call script.
Nel call script, dopo aver assegnati alcuni @parameters, chiamo un def che ho scritto in Interpreter

fino a qui tutto ok.
L'evento su mappa deve continuare.
Il def in Interpreter deve continuare ciclicamente per fatti suoi, con una pausa che non faccia essere il ciclo troppo veloce.

Le prove che ho fatto:
- Grafich.update blocca anche l'evento su mappa
- for, while con contatori non si vedono neanche, come se non rallentassero minimamente.
- Il comando di giver, se ho capito come usarlo va associato ad un update che mi chiami di volta in volta il def specifico. ad ogni ciclo il contatore cala di uno e il def si ferma a metà, fino a che il contatore non si azera e i comandi possono proseguire, una sorta di barriera. Per ora ho fatto una prova veloce, devo ragionarci un po' più tardi.
Nel frattempo spero che il problema ora sia un po' più chiaro

Modificato da Rai89, 10 May 2012 - 19:46 PM.

Immagine inserita


    Guest_clyde_*
  • Guests
  • Rens:

#15 Inviato 10 May 2012 - 20:42 PM

CAOS!
Infilare il def in Interpreter... mi chiedo perché!
Deve continuare ciclicamente per i fatti suoi... ma deve fare qualcosa 'sto ciclo?
Con una pausa che non faccia essere il ciclo troppo veloce... :mellow: Cambia processore!

Io voglio capire l'obiettivo di questo caos!
Spiegaci, orsù, quello che vuoi ottenere!

    Rai89
  • Nuovo Arrivato

  • Utenti
  • Rens: 0
  • 0
  • Stelletta
  • 15 messaggi

#16 Inviato 10 May 2012 - 21:54 PM

sto cercando di fare qualcosa che gestisca delle animazioni, ma cosa centra quello che c'è dentro al ciclo? ci potrebbe essere un fungo che balla sullo sfondo per un minigioco in cui devi pestarlo... ci potrebbe stare di tutto.
Deve essere solamente qualcosa che funzioni in script, per fatti suoi, ciclicamente, e che non blocchi l'evento.
Se si può fare bene, se no cerco altre vie, non è questo il problema, il mio dubbio in realtà è molto preciso.
Si può fare un wait che blocchi uno script e non tutto il resto?
Come ho detto, la risposta sembrerebbe un contatore, ma non va

Immagine inserita


    Dilos
  • Alex (Rm2k)

  • Utenti Speciali
  • Rens: 60
  • 0
  • StellettaStellettaStellettaStellettaStelletta
  • 1325 messaggi
  • Sesso:Maschio
  • Provenienza:Torino
  • Abilitā:Esperto

#17 Inviato 10 May 2012 - 22:54 PM

Mi intrometto ma non sono praticissimo sulle pause script, prima di tutto vi spiego quello che Rai89 credo cerchi di dirvi una volta per tutte XD:

Rai ha un processo parallelo su mappa, in quel processo parallelo vengono eseguiti dei comandi, e anche un ciclo in un call script, che gira insieme a tutto il resto contenuto nell' evento, lui vuole rallentare questo ciclo inserendo una pausa che viene eseguita all' interno del ciclo, ma che rallenti solo il ciclo in questione e non anche il resto contenuto nell' evento. Giusto? :smile:

Adesso, non so se può essere d' aiuto, ma io su RPG Maker XP faccio così:

Ciclo di Rai:

def ciclo
$wait = 0 unless $counting
roba di Rai
wait
end


Poi creo un metodo wait che viene richiamato a ogni ciclo:

def wait
loop do
$counting = true
$wait = $wait += 1
case $wait
when 1500000
$counting = false
break
end
end
case $wait
when 1500000
ciclo
end
end


1500000 è circa un 1.5 secondi...

Ho adattato il codice all' ipotetica situazione di Rai, quindi non ho testato e non so se così viene come nel mio caso... :unsure:

Modificato da Dilos, 10 May 2012 - 23:25 PM.

|FIRMA|
Spoiler

    giver
  • Alex (Rm2k)

  • Utenti
  • Rens: 121
  • 0
  • StellettaStellettaStellettaStellettaStelletta
  • 1291 messaggi
  • Sesso:Maschio
  • Provenienza:The Creept - Room for Strangeness
  • Abilitā:Esperto

#18 Inviato 10 May 2012 - 23:14 PM

@Rai89: Se vuoi un esempio, basta che guardi come Game_System gestisce i timer . . .

Spoiler

    Rai89
  • Nuovo Arrivato

  • Utenti
  • Rens: 0
  • 0
  • Stelletta
  • 15 messaggi

#19 Inviato 11 May 2012 - 19:03 PM

Ok grazie a tutti per le dritte, mi sono state utilissime, ho risolto ^^

Immagine inserita


    Dilos
  • Alex (Rm2k)

  • Utenti Speciali
  • Rens: 60
  • 0
  • StellettaStellettaStellettaStellettaStelletta
  • 1325 messaggi
  • Sesso:Maschio
  • Provenienza:Torino
  • Abilitā:Esperto

#20 Inviato 11 May 2012 - 19:06 PM

Rai89 dicci come hai risolto (se non è un segreto brevettato eh :biggrin: ) così se qualcuno in futuro ha questo problema poi legge qui e risolve anche lui. :smile:
|FIRMA|
Spoiler




  • Feed RSS