Rispondo ad una domanda per volta così approfondiamo ogni questione:1 - Come far capire al personaggio di cambiare stanza?Allora, in realtà per far "cambiare stanza" al personaggio cPIPPO (faccio l'esempio che il personaggio si chiami "PIPPO") basta mettere nello script il comando
cPIPPO.ChangeRoom(2, 100,100);
In pratica Pippo va alla stanza N.2 in posizione x = 100, y =100
Il comando in esame lo puoi "associare" ad un evento: ad esempio appunto quando oltrepassa un "edge" oppure quando il personaggio entra in una determinata "regione" di spazio o ancora quando clicchi su qualcosa ecc.
Se ad esempio l'uscita della stanza è obliqua, disegna una "region" (per disegnarla c'è l'apposita matitina, che te la fa disegnare come se fosse paint) e crea la funzione "personaggio entra nella regione" cioè WalkontoRegion .. nella "funzione" creata scrivi: cPIPPO.ChangeRoom(2, 100,100); in questo modo farai sì che, quando il personaggio entra nella regione di spazio lui cambia stanza.
Volendo ipotizzare uno script, aggiungendo anche una verifica di variabile (tanto per complicare un po') verrebbe così:
function region1_WalksOnto() //funzione richiamata ogni volta che il personaggio oltrepassa il bordo di una regione per entrarci dentro
{
if (porta_aperta == 1) //ipotizziamo di avere una variabile porta_aperta che vale 1 se una determinata porta è aperta
{
cPippo.ChangeRoom(2, 100, 100);
}
else //la porta è chiusa
{
cPippo.faceLocation(cPippo.x, 600, eBlock); //pippo si rivolge verso il giocatore
cPippo.Say("La porta è chiusa!!!");
}
}
Dimmi se sono stato chiaro o se hai bisogno di approfondire l'argomento.
Se è ok, possiamo passare alla domanda 2