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
[VxAce] Concatenazione Tasti [Event]

    HROT
  • Animatore

  • Utenti
  • Rens: 181
  • 28
  • StellettaStellettaStellettaStellettaStelletta
  • 1020 messaggi
  • Sesso:Maschio
  • Abilitā:Apprendista

#1 Inviato 02 June 2016 - 00:03 AM

Concatenazione Tasti
 


 Introduzione
 
Su richiesta ho creato questo tutorial per la realizzazione di "mosse speciali"..
Ricordate il buon vecchio  Street Fighter?
x1hzk7.png
Ecco l'obbiettivo è qualcosa del genere
Questo tutorial non è rivolto a chi non conosce le basi di RPG Maker ma non richiede nemmeno conoscenza avanzate quindi lo catalogherei come un livello di difficoltà "Intermedio"
 
 
 

 

Per: RPG Maker VxAce (ma, data la semplicità, credo che vada bene anche per altri tool).
Autore: HROT.
Descrizione: Verifica la pressione di una sequenza di tasti.
Ultima modifica: 01/06/2016.


 Tutorial
 
Per verificare se un tasto è stato premuto o meno basta semplicemente usare una condizione 
Purtroppo la condizione verifica solo se il tasto è premuto in quel esatto istante, se viene rilasciato un istante prima o premuto un istante dopo (parliamo di centesimi di secondo) la condizione risulterà falsa
 
Un altro problema è dovuto al fatto che: sapere se un tasto è stato premuto non esclude che altri tasti siano premuti contemporaneamente
..quindi bisogna verificare, contemporaneamente, la pressione di tutti i tasti che si vuole escludere
 
Per non dilungarmi troppo con l'esempio le combinazioni di questo tutorial prevedono solo l'utilizzo delle 4 frecce direzionali (←↑→↓)..
Data la semplicità dell'esempio sarà facile espandere questo concetto a tutti i tasti di cui potete disporre (infatti ci sono script che permettono di usare tutta la tastiera!) 
Anche se qui non sono contemplate, partendo da questo tutorial, con un pò di buon senso sarà facile  aggiungere pressioni multiple (→+↓=↘)o pressioni prolungate (⇐⇑⇒⇓)
 
L'evento non è complicato ma, data la sua lunghezza, poteva risultare difficile comprenderlo nella sua interezza e ho preferito suddividerlo in blocchi per facilitarne la lettura
m7gvvm.png
Partendo da sinistra vediamo il corpo principale dell'evento, questo può partire in seguito ad un azione (come in questo caso) oppure la combo può essere inserita in un processo parallelo, così da essere disponibile in un qualunque momento
La pressione di ogni tasto è stata mappata tramite eventi comuni, questo significa che una volta creato il primo evento comune, facendo lievissime modifiche sarà possibile duplicarlo e aggiungere tutti i tasti che desiderate
 
Il blocco di istruzioni centrale è un ciclo in configurazione "for" che si ripete fino all'esaurimento del tempo 
A differenza del classico ciclo in configurazione "for" l'inizializzazione del contatore "TIME" non è appena prima del ciclo, questo perchè nell'esempio specifico il tempo ("TIME") è comune a tutta la combo e non solo alla pressione di un singolo tasto, infatti il contatore che verifica la pressione del tasto successivo partirà sfruttando il tempo residuo
Se il tempo esaurisce prima che il tasto venga premuto lo switch "FALLITO" passa in ON decretando così il fallimento della combo
 
A destra in alto abbiamo la condizione che verifica quali tasti vengono premuti nel lasso di tempo scandito dal precedente ciclo
Il ciclo viene interrotto sia dalla pressione del tasto giusto che da quelli sbagliati, ma nel caso in cui il tasto sia sbagliato lo switch "FALLITO" passa in ON
(il blocco di istruzioni evidenziato serve a darvi un idea di quali sono le istruzioni da aggiungere per assicurarsi che altri tasti non vengano premuti)
 
Quando la verifica di un tasto termina si passerebbe istantaneamente alla verifica del tasto successivo.. Purtroppo l'evento si muove molto più velocemente delle nostre dita,
questo implica che, il successivo controllo, potrebbe iniziare a verificare il prossimo tasto della combo mentre noi non abbiamo ancora rilasciato il precedente
Per risolvere questo problema basta aggiungere un ulteriore verifica
 
A destra in basso si nota un semplice ciclo che si ripete relativamente all'infinito (fino all'esaurimento del tempo) e permette di proseguire solo se il tasto è stato rilasciato
Ovviamente se il tasto non viene rilasciato e il tempo esaurisce.. la combo fallirà
 
 

Spero che il tutorial possa esservi utile..
Per domande resto a disposizione


Modificato da HROT, 02 June 2016 - 01:27 AM.

JvoTKKj.png


    Guardian of Irael
  • Coniglietto Rosso

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


#2 Inviato 02 June 2016 - 11:59 AM

Già. Purtroppo non essendo presente un controllo tasti come nei vecchi tool bisogna tener conto di tutti i tasti errati premuti. Ben strutturato come codice con richiamo ad eventi comuni separati per realizzare facilmente diverse combo e con tutti i dettagli ed i commenti del caso! ^ ^


(\_/)
(^ ^) <----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


    HROT
  • Animatore

  • Utenti
  • Rens: 181
  • 28
  • StellettaStellettaStellettaStellettaStelletta
  • 1020 messaggi
  • Sesso:Maschio
  • Abilitā:Apprendista

#3 Inviato 02 June 2016 - 17:28 PM

Ti avevo detto che era noioso da scrivere.. e qui ho usato solo le frecce

 

Mentre lo realizzavo però mi è venuto in mente che si potrebbe sfruttare per un ABS simile a quello di Magicka

..così, invece di dover mettere il gioco in "pausa" per switchare l'abilità primaria, si potrebbe avere un altissimo numero di magie concentrato in pochissimi tasti 

 

Dovrei solo studiare come avere diverse combo contemporaneamente 

per esempio:

A,B,C,D

A,B,D,C

I primi due tasti sono in comune ma arrivato al 3° se premo C devo far fallire solo la seconda combo senza che questo abbia ripercussioni sulla prima..

non è una cosa cosi immediata perchè, avendo usato degli eventi comuni, i tasti condividono la stessa variabili di TIME e lo stesso switch FALLITO


JvoTKKj.png


    Guardian of Irael
  • Coniglietto Rosso

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


#4 Inviato 02 June 2016 - 20:19 PM

Alla fine con questo tipo di tutorial un tasto vale l'altro! ^ ^

 

Alla Magicka, pare più che interessante... penso tu debba sfruttare un po' più switch e variabili per calcolare lo stato di primo incantesimo andato, ma secondo ancora non attivato oppure delle vere e proprie combinazioni che innescano l'incantesimo giusto. Quindi se switch A ON e B OFF lancia questo azzera tutto, se B OFF A ON lancia quest'altro ed azzera tutto, ecc... potrebbe essere vantaggioso per combinazioni corte, altrimenti bisogna andare di stato con le variabili per fare qualcosa di più elegante di calcolare tutte le combinazioni.

^ ^


(\_/)
(^ ^) <----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





  • Feed RSS