Fermare i nemici

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Avatar utente
MagicFool64
Membro
Messaggi: 77
Iscritto il: 17/12/2018, 22:26
Uso: GM:Studio 1.4 Pro
Contatta:

Fermare i nemici

Messaggio da MagicFool64 »

Prima di tutto vi informo che uso GM: Studio 1
Sto creando un personaggio che può evocare delle radici sotto i nemici, bloccandoli finchè le radici non spariscono. Il problema è che i nemici non si fermano quando le radici appaiono nelle loro posizioni, continuano a seguire il personaggio. Per i nemici ho usato il drag n drop "Move towards Point" nei loro step, mettendo la posizione del giocatore. Come faccio a fermarli quando entrano in contatto con le radici?
L'ignoranza è la via per l'autodistruzione

Patience9
Newbie
Messaggi: 4
Iscritto il: 12/09/2018, 23:09
Uso: GM:Studio 2
Contatta:

Re: Fermare i nemici

Messaggio da Patience9 »

Quando entrano in contatto con le radici ti basta impostare la speed del nemico a 0, "speed" è proprio una variabile standard di ogni instanza

Avatar utente
MagicFool64
Membro
Messaggi: 77
Iscritto il: 17/12/2018, 22:26
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Fermare i nemici

Messaggio da MagicFool64 »

Ci ho già provato, non funziona
L'ignoranza è la via per l'autodistruzione

Avatar utente
cp94
Moderatore
Messaggi: 2789
Iscritto il: 04/07/2009, 19:18
Specialità: ddd
Località: Brescia
Contatta:

Re: Fermare i nemici

Messaggio da cp94 »

Quando vai ad eseguire il codice che "sposta il nemico verso il player" ti basta fare un check preventivo se il nemico non sta collidendo con una radice.
Una cosa tipo:

Codice: Seleziona tutto

if (!instance_place(x, y, obj_radice)) {
    // codice movimento nemico (move towards)
}
Games you should check out
Naemo
E T U S
Overgravity
Inside the Code

Immagine

Avatar utente
MagicFool64
Membro
Messaggi: 77
Iscritto il: 17/12/2018, 22:26
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Fermare i nemici

Messaggio da MagicFool64 »

cp94 ha scritto:Quando vai ad eseguire il codice che "sposta il nemico verso il player" ti basta fare un check preventivo se il nemico non sta collidendo con una radice.
Una cosa tipo:

Codice: Seleziona tutto

if (!instance_place(x, y, obj_radice)) {
    // codice movimento nemico (move towards)
}
Succede l'opposto: i nemici sono fermi, e inseguono il personaggio solo quando toccano le radici
ecco lo script che ho usato

Codice: Seleziona tutto

if (!instance_place(x, y, obj_root)) {
    move_towards_point( obj_viking.x, obj_viking.y, 0 );
}
L'ignoranza è la via per l'autodistruzione

Avatar utente
Willshir3
Membro
Messaggi: 228
Iscritto il: 28/06/2014, 16:23
Uso: GM:Studio 2
Contatta:

Re: Fermare i nemici

Messaggio da Willshir3 »

MagicFool64 ha scritto:
cp94 ha scritto:Quando vai ad eseguire il codice che "sposta il nemico verso il player" ti basta fare un check preventivo se il nemico non sta collidendo con una radice.
Una cosa tipo:

Codice: Seleziona tutto

if (!instance_place(x, y, obj_radice)) {
    // codice movimento nemico (move towards)
}
Succede l'opposto: i nemici sono fermi, e inseguono il personaggio solo quando toccano le radici
ecco lo script che ho usato

Codice: Seleziona tutto

if (!instance_place(x, y, obj_root)) {
    move_towards_point( obj_viking.x, obj_viking.y, 0 );
}
Non sono una cifra col codice ma a livello di logica tu stai dicendo " se in quelle coordinate non ci sono le radici, segui il player a velocità '0' "
In ogni caso devi settare anche un 'else', per fare in modo che l' IA del nemico sia "viva"(che faccia un check continuo) e impostargli un' azione.

Mi tuffo:

Codice: Seleziona tutto

if (instance_place(x, y, obj_root)) {
    move_towards_point( obj_viking.x, obj_viking.y, 0 );
}
else
move_towards_point( obj_viking.x, obj_viking.y, 5 );
nota: nel codice che ho rivisto ho tolto '!'(not).

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 23 ospiti