Problema con nemico che attacca a distanza

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:

Problema con nemico che attacca a distanza

Messaggio da MagicFool64 »

Ciao, vi anticipo che non uso GM: Studio 2, ma il primo. Sto cercando di creare un nemico che attacca sparando a distanza, ma ho un problema. Il nemico in questione, dopo una certa distanza dal giocatore dovrebbe fermarsi e sparare. A fermarsi si ferma, ma non spara; ansi, spara quando ritorna a seguire il giocatore. Dove ho sbagliato? Vi mostro alcuni screenshot degli script
IMAGINE 1: https://imgur.com/a/AtGnoFZ
IMAGINE 2: https://imgur.com/a/8ighTxq
IMAGINE 3: https://imgur.com/a/X883vnx
IMAGINE 4: https://imgur.com/a/d9HCkYD
L'ignoranza è la via per l'autodistruzione

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

Re: Problema con nemico che attacca a distanza

Messaggio da Patience9 »

Non uso il D&D quindi non sono sicuro, ma credo che il problema stia nel fatto che quando il goblin si ferma l'alarm viene impostato a 10 a ogni step e quindi non arriva mai a 0. Infatti come hai detto tu quando poi si sposta spara perchè l'alarm non viene più settato a 10, quindi arriva a zero e spara

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

Re: Problema con nemico che attacca a distanza

Messaggio da MagicFool64 »

Cosa mi consigli di fare?
L'ignoranza è la via per l'autodistruzione

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

Re: Problema con nemico che attacca a distanza

Messaggio da Patience9 »

Dichiari una variabile con il nome che vuoi ("shot" per dirne una). Se il goblin è fermo e la variabile shot è a 0 metti l'alarm a 10 e lo shot a 1. Quando nell'alarm fai partire il colpo rimetti shot a 0.

Avatar utente
Simsure
Membro
Messaggi: 223
Iscritto il: 13/09/2013, 21:54
Specialità: Programmazione
Uso: GM:Studio 2
Località: dietro di te...
Contatta:

Re: Problema con nemico che attacca a distanza

Messaggio da Simsure »

Ciao, puoi se il problema é quello descritto da Pat, ti basta semplicemente fare un controllo IF prima di settare l'allarme e vedere ere se é uguale a - 1, perche quando un alarm é spento diventa -1,quindi chiedendogli di controllare se é uguale a - 1 ti assicuri che diventi 10 soltanto se non é ancora attivo
Immagine
Spoiler
Immagine

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

Re: Problema con nemico che attacca a distanza

Messaggio da MagicFool64 »

Potete aiutarmi con uno script?
L'ignoranza è la via per l'autodistruzione

Avatar utente
Simsure
Membro
Messaggi: 223
Iscritto il: 13/09/2013, 21:54
Specialità: Programmazione
Uso: GM:Studio 2
Località: dietro di te...
Contatta:

Re: Problema con nemico che attacca a distanza

Messaggio da Simsure »

Oki, ti riporto quello che hai messo tu col D&D in forma di codice, cosi ci fai anche pratica.
Ho aggiunto quello che ti suggerivo e spostato la condizione "if canmove = false" come else della prima condizione, cosi è tutto piu pulito.

Codice: Seleziona tutto

if canmove = true
{
	move_toward_point(obj_viking.x, obj_viking.y, 4)
}
else
{
	direction = random(360)
	speed = 4
}


if distance_to_object(obj_viking) < 100
{
	canmove = false
	
	if alarm[0] = -1
	{
		alarm[0] = 10
	}
}
else
{
	canmove = true
}
è piu chiaro ora?
Se poi volessi aggiungere che il nemico deve fermarsi quando spara ti basta settare "speed = 0" quando vai troppo vicino a obj_viking.
Perche la funzione "move_toward_point()" senza fartelo vedere aumenta questa variabile per far muovere l'oggetto, quindi devi riportarla a 0 per fermarlo.
Immagine
Spoiler
Immagine

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

Re: Problema con nemico che attacca a distanza

Messaggio da MagicFool64 »

Simsure ha scritto:Oki, ti riporto quello che hai messo tu col D&D in forma di codice, cosi ci fai anche pratica.
Ho aggiunto quello che ti suggerivo e spostato la condizione "if canmove = false" come else della prima condizione, cosi è tutto piu pulito.

Codice: Seleziona tutto

if canmove = true
{
	move_toward_point(obj_viking.x, obj_viking.y, 4)
}
else
{
	direction = random(360)
	speed = 4
}


if distance_to_object(obj_viking) < 100
{
	canmove = false
	
	if alarm[0] = -1
	{
		alarm[0] = 10
	}
}
else
{
	canmove = true
}
è piu chiaro ora?
Se poi volessi aggiungere che il nemico deve fermarsi quando spara ti basta settare "speed = 0" quando vai troppo vicino a obj_viking.
Perche la funzione "move_toward_point()" senza fartelo vedere aumenta questa variabile per far muovere l'oggetto, quindi devi riportarla a 0 per fermarlo.
Ho aggiustato alcune cose riguardo questo script, ora il nemico si comporta come dovrebbe. E come fare per fare un modo che il nemico smette di sparare quando insegue il giocatore? Abbiate un pò di pazienza, ma sono alle prime armi con la programmazione
L'ignoranza è la via per l'autodistruzione

Avatar utente
Simsure
Membro
Messaggi: 223
Iscritto il: 13/09/2013, 21:54
Specialità: Programmazione
Uso: GM:Studio 2
Località: dietro di te...
Contatta:

Re: Problema con nemico che attacca a distanza

Messaggio da Simsure »

Nessun problema, ci siam passati tutti, la cosa principale è capire il modo giusto di pensare quando si programma.

Secondo il codice che ti ho passato il nemico smette gia di sparare.
Ciò che attiva lo sparare è quando l'allarm arriva a zero, l'unico momento in cui l'alarm viene attivato è quando "distance_to_object(obj_viking) < 100".
Quando la distanza è maggiore ed inizia ad inseguirlo non è possibile che spari perche l'alarm resta spento, forse hai aggiunto qualcosa tu che continua a riaccendere l'alarm?

In ogni caso ho ti metti un avatar qui sul forum o non ti parlo piu :asd:
Immagine
Spoiler
Immagine

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

Re: Problema con nemico che attacca a distanza

Messaggio da MagicFool64 »

Simsure ha scritto:In ogni caso ho ti metti un avatar qui sul forum o non ti parlo piu :asd:
Cattivo
L'ignoranza è la via per l'autodistruzione

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 36 ospiti