-
.Manca il "MoveCharacter"
George in sequenza passa alla view 8, poi parte l'animazione ed infine torna alla view 1, ma non hai inserito il comando per farlo spostare.
Non cadere in questi errori banalissimi, quasi di svogliatezza. Prima di postare prova a capire da solo quale possa essere il problema.
Il bello di ags sta anche nel provare e riprovare diverse soluzioni
Ciao gigi, ho provato un 40 minuti prima di chiedere aiuto, e anche adesso, che sono 30 minuti non riesco a fare quello che vorrei... ho provato di tutto, da animate a animating, da move a moving ecc e non trovo soluzione, il mio problema sta nell'inglese...
Il problema è che la funzione MoveCharacter non la riconosce, mi da errore sul nome... inoltre dove lo dovrei mettere?. -
.
Devi dargli il comando per far muovere il personaggio, altrimenti è normale che non andrà da nessuna parte.
Non dirmi che fino ad ora nel tuo gioco il personaggio è sempre rimasto fermo allo stesso posto...
Nella versione 3.2.1 il comando dovrebbe essere "Character.Walk", sicuramente l'avrai usato decine e decine di volte!
Quindi, prima se tu lo chieda, se il tuo personaggio si chiama EGO il comando sarà:
cEgo.Walk (int x, int y, optional BlockingStyle,
optional WalkWhere);
Edited by Gigi77 - 28/5/2012, 20:00. -
.
A dir la verità la uso poco, solo quando devo portare il personaggio in una determinata posizione... solo che non sò per quale motivo non fa il movimento che vorrei neanche mettendolo nello script . -
.
Posta lo script completo che inserisci, vediamo un po'
. -
.
Allora, il comando completo che metto è:
function htombino_Look()
{
George.ChangeView(8);
George.Walk(270, 336, eBlock, eWalkableAreas);
George.Animate(2, 3, 0, eBlock, eForwards);
George.UnlockView();
George.ChangeView(1);
}
Cosi facendo George cammina fino al punto prestabilito e poi si anima scattando ma restando nello stesso medesimo posto...
In pratica vorrei che le coordinate del "walk" comprendessero l'animazione 8 non la camminata normale... vorrei che scattasse in quel punto...
Scusa se ti faccio ammattire, sono poco pratico.... -
.
Allora, chiariamo un attimo le idee:
Ad ogni personaggio assegneremo le loro rispettive view view che ve: Normal view , (quando il personaggio cammina) , Speech view (quando il personaggio parla), Idle view (quando il personaggio rimane fermo per un tot di secondi) etc...
Nella sezione "Characters" assegniamo al "Normal view" la view dell'animazione della camminata del nostro personaggio.
Quindi, se successivamente vogliamo spostare il nostro personaggio in un altro punto dello screen, basterà scrivere:CODICEcEgo.Walk(155, 122);
dopodichè il nostro personaggio si sposterà fino alla coordinata da noi indicata usando l'animazione della camminata.
Se invece vogliamo spostare il nostro personaggio in un determinato punto e, anzichè usare l'animazione della camminata, vogliamo usare un'altra animazione (a carponi, per esempio), dobbiamo sostituire la view.
Ora c'è da capire se tu vuoi che il tuo personaggio, per spostarsi un un punto da te stabilito, debba usare la semplice animazione della camminata o vorresti usare un'animazione diversa. -
.
secondo me potresti provare cosiì
imposti l'animazione dello scatto come animazione di camminata
lo fai camminare e vedi bene i tempi in modo che non faccia mezza animazione in piu' o in meno e poi rimetti immediatamente la view nromale
quindi e'CODICEcEgo.ChangeView(view dello scatto);
cEgo.Walk(155, 122);
cEgo.ChangeView(view normale di George)
studiando il giusto tempismo e inserendo come i frame nel modo giusto dovrebbe funzionare. -
.
Quindi George vuole usare una view diversa per la camminata?
lo script sarebbe questo:
function htombino_Look()
{
George.ChangeView(8);
George.Walk(270, 336, eBlock, eWalkableAreas);
George.ChangeView(1);
}
. -
.Allora, chiariamo un attimo le idee:
Ad ogni personaggio assegneremo le loro rispettive view view che ve: Normal view , (quando il personaggio cammina) , Speech view (quando il personaggio parla), Idle view (quando il personaggio rimane fermo per un tot di secondi) etc...
Nella sezione "Characters" assegniamo al "Normal view" la view dell'animazione della camminata del nostro personaggio.
Quindi, se successivamente vogliamo spostare il nostro personaggio in un altro punto dello screen, basterà scrivere:CODICEcEgo.Walk(155, 122);
dopodichè il nostro personaggio si sposterà fino alla coordinata da noi indicata usando l'animazione della camminata.
Se invece vogliamo spostare il nostro personaggio in un determinato punto e, anzichè usare l'animazione della camminata, vogliamo usare un'altra animazione (a carponi, per esempio), dobbiamo sostituire la view.
Ora c'è da capire se tu vuoi che il tuo personaggio, per spostarsi un un punto da te stabilito, debba usare la semplice animazione della camminata o vorresti usare un'animazione diversa
Vorrei che cliccando in un determinato punto dello schermo, un hotspot, il personaggio usi un'animazione per spostarsi, l'animazione che ho messo in views "8".. e successivamente torni a muoversi normalmente...secondo me potresti provare cosiì
imposti l'animazione dello scatto come animazione di camminata
lo fai camminare e vedi bene i tempi in modo che non faccia mezza animazione in piu' o in meno e poi rimetti immediatamente la view nromale
quindi e'CODICEcEgo.ChangeView(view dello scatto);
cEgo.Walk(155, 122);
cEgo.ChangeView(view normale di George)
studiando il giusto tempismo e inserendo come i frame nel modo giusto dovrebbe funzionare
Era un idea, ma il problema wario è che quando comincio dalla stanza in questione, george si muove di scatto, perchè cambiando la view normal da 1 (camminata normale) a 8 (scatto), considera camminata normale la views 8...Quindi George vuole usare una view diversa per la camminata?
lo script sarebbe questo:
function htombino_Look()
{
George.ChangeView(8);
George.Walk(270, 336, eBlock, eWalkableAreas);
George.ChangeView(1);
}
ce l'ho fatta, ti ringrazio!!!!!!!
scusate l'imbranamento che ho... perdonatemi. -
.
hem George guarda che e' lo stesso identico metodo che ti ho detto io
avevo dato per scontato che cambiassi la view non appena entrato nella stanza ma facendo l'interazione richiesta. -
.hem George guarda che e' lo stesso identico metodo che ti ho detto io
avevo dato per scontato che cambiassi la view non appena entrato nella stanza ma facendo l'interazione richiesta
Sopravvaluti George
scherzo, ovviamente.
Tornando al discorso di prima, hai visto com'era semplicissima la cosa? Bastava:
Cambiare la view: George.ChangeView(8);
Spostare il personaggio: George.Walk(270, 336, eBlock, eWalkableAreas);
Ricambiare la view: George.ChangeView(1);
Tutto veramente molto semplice ed in piena logica. Usando per bene la testolina senza andare in panico al primo intoppo molto probabilmente si arrivavi da solo.
Ti dirò di più, provando e riprovando nuove soluzioni impari ad usare ags in fretta ed inizi, a volte anche involontariamente, a scoprire cose sempre nuove.
Il mio consiglio è quello di sperimentare continuamente, poi se veramente uno non ci salta fuori allora puo' tranquillamente chiedere, ma farlo ogni mezz'ora si rischia di passare per svogliati ed impediti arrivando poi a non ricevere alcuna risposta da nessuno.
Altra cosa che ho sempre sostenuto: se vuoi chiedere aiuto su una determinata cosa apri un nuovo topic in maniera tale che se qualcuno in futuro incontrerà il tuo stesso problema troverà la soluzione + velocemente. Come fai tu disperdi tutto in un'unico topic.. -
.
Scusa wario non avevo capito..
Grazie per la pazienza a entrambe, si a volte le cose più semplici sembrano le più complicate... vedrò di cavarmela da solo il più possibile, ci sarà maggior soddisfazione alla fine thanks a tutti. -
.
Non preoccuparti George, ormai conosci tutti i comandi di base di AGS, quando ti trovi in una situazione di questo genere come dice Gigi devi ingegnarti, esiste sempre piu' di un metodo di fare una cosa con questo engine . -
.
Sicuro, ci vuole un pò di pazienza ma è ben spesa... .