Nemici che si fermano e sparano al giocare

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
MagicFool
Membro
Messaggi: 189
Iscritto il: 25/10/2013, 14:43
Specialità: Artista
Uso: GM:Studio 1.4 Pro
Contatta:

Nemici che si fermano e sparano al giocare

Messaggio da MagicFool »

Qualcuno conosce uno script per i nemici che attaccano a distanza? Intendo i nemici che inseguono il giocatore, e appena raggiunta una certa distanza da lui si fermano. Mentre sono fermi fermi sparano con gli archi, facendo una pause di 5 secondi dopo ogni sparo. Quando il giocatore si allontana, questi nemici lo inseguono di nuovo.
Qualcuno sa aiutarmi?

Avatar utente
HenrikUp
Membro super
Messaggi: 584
Iscritto il: 04/07/2011, 10:50
Specialità: Programmatore
Uso: GM:Studio 1.4 Standard
Località: SudItalia
Contatta:

Re: Nemici che si fermano e sparano al giocare

Messaggio da HenrikUp »

inanzitutto spiega,il gioco e' di sopra tipo top down shooter o 2d ?

Ma cmq e' qualcosa del genere :

Codice: Seleziona tutto

if distance_to_object(Player) < 900 && distance_to_object(Player) >= 150 {
//qui metti un'azione che faccia inseguire il giocatore al nemico per esempio se il gioco utilizza la fisica integrata di Gm Studio dovresti usare una cosa del genere :
mp_potential_step_object(Player.x,Player.y,2.6,Obj_blocco //blocco da evitare);
idx = lengthdir_x(2.6,direction);
idy = lengthdir_y(2.6,direction);
phy_speed_x = idx
phy_speed_y = idy
//qui metti una variabile che allerti il nemico e gli faccia fare altre azioni se allerta e' uguale a 1 per esempio avere image_speed = 1 e quindi correre ah ma ricordati prima di inizializzarla nel create.
allerta = 1 }

if distance_to_object(Player) < 150 {
phy_speed_x = 0
phy_speed_y = 0
if possosparare = 1 { //se la variabile possosparare e' a 1 spara ricordati di inizializzarla nel create pero stavolta deve iniziare a 1
possosparare = 0
alarm[0] = 5 //dopo 5 secondi va in questo alarm poi in questo alarm te metti che la variabile posso sparare si resetta a 1
instance_create(x,y,freccia) //fai che crei una freccia o una cosa del genere
}}

Avatar utente
Wolfrost
Membro super
Messaggi: 692
Iscritto il: 03/08/2014, 13:08
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Una galassia lontana lontana...
Contatta:

Re: Nemici che si fermano e sparano al giocare

Messaggio da Wolfrost »

HenrikUp ha scritto:inanzitutto spiega,il gioco e' di sopra tipo top down shooter o 2d ?

Ma cmq e' qualcosa del genere :

Codice: Seleziona tutto

if distance_to_object(Player) < 900 && distance_to_object(Player) >= 150 {
//qui metti un'azione che faccia inseguire il giocatore al nemico per esempio se il gioco utilizza la fisica integrata di Gm Studio dovresti usare una cosa del genere :
mp_potential_step_object(Player.x,Player.y,2.6,Obj_blocco //blocco da evitare);
idx = lengthdir_x(2.6,direction);
idy = lengthdir_y(2.6,direction);
phy_speed_x = idx
phy_speed_y = idy
//qui metti una variabile che allerti il nemico e gli faccia fare altre azioni se allerta e' uguale a 1 per esempio avere image_speed = 1 e quindi correre ah ma ricordati prima di inizializzarla nel create.
allerta = 1 }

if distance_to_object(Player) < 150 {
phy_speed_x = 0
phy_speed_y = 0
if possosparare = 1 { //se la variabile possosparare e' a 1 spara ricordati di inizializzarla nel create pero stavolta deve iniziare a 1
possosparare = 0
alarm[0] = 5 //dopo 5 secondi va in questo alarm poi in questo alarm te metti che la variabile posso sparare si resetta a 1
instance_create(x,y,freccia) //fai che crei una freccia o una cosa del genere
}}

Codice: Seleziona tutto

alarm[0] = 5
Come sarebbe alarm[0] = 5; così setti l'alarm che scatterà in 5 step, non in 5 secondi! :spat: :spat: Se vuoi fare cinque secondi devi fare alarm[0] = room_speed*5!
Inoltre il tuo sistema è troppo confusionario, inoltre utilizza metodi con la fisica built-in di Game Maker che personalmente non userei mai per il tipo di gioco che personalmente vuole fare lui. E, come se non bastasse, gli stai offrendo la "pappa pronta" pure mal realizzata :shock: :NO:
Immagine

Immagine

MagicFool
Membro
Messaggi: 189
Iscritto il: 25/10/2013, 14:43
Specialità: Artista
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Nemici che si fermano e sparano al giocare

Messaggio da MagicFool »

Posso avere una spiegazione più semplice? Anche perchè questo script non mi funziona bene.
Comunque sì, è un Top Down Shooter 2D. In'oltre si basa sulla sopravvivenza in arena, dove il giocatore deve uccidere i nemici che lo attaccano.

Avatar utente
doom13
Moderatore
Messaggi: 2093
Iscritto il: 31/08/2012, 15:40
Specialità: Programmazione
Uso: GM:Studio 2
Contatta:

Re: Nemici che si fermano e sparano al giocare

Messaggio da doom13 »

Se guardi sul manuale ci sono tutte le funzioni che ti servono, c'è quella per controllare la distanza, quella per seguire il giocatore, ecc
(point_distance oppure distance_to_object, mp_potential_step, queste sono alcune, vedi tu quali fanno più al tuo caso).
Con quelle funzioni ti semplifichi la vita ma potrebbero non soddisfarti pienamente.
Fai una ricerca sul manuale, fai qualche prova. Se proprio non sai da dove cominciare, ti diamo un paio di mani. :D
Immagine
Spoiler
Maze [sospeso]
Isom (titolo provvisorio) (Windows & Android) [sospeso]
Keep Calm & Jump (Android) [In corso]
The Graywall (Windows) [Completo]
DTB (Windows & Android) [Completo]
The Last Spell (Windows) [Completo]
Dukenstein: Return to the house (Windows) [Completo]
DMSystem (Windows) [Completo]
"Things get hard sometimes guys... But remember, dicks get hard too, but they don't stay hard forever. Don't give up!"

Avatar utente
HenrikUp
Membro super
Messaggi: 584
Iscritto il: 04/07/2011, 10:50
Specialità: Programmatore
Uso: GM:Studio 1.4 Standard
Località: SudItalia
Contatta:

Re: Nemici che si fermano e sparano al giocare

Messaggio da HenrikUp »

Wolfrost lui non ha specificato il gioco che voleva creare percio ho tirato a indovinare.
Per l'errore dei 5 secondi scusate la distrazione dovevo mettere 150(se la room speed e 30) oppure il tuo code e cmq
io non ho mai detto che lui doveva copiare il mio script io ho semplicemente detto che se il gioco era di sopra e c'era la fisica integrata poteva usare tutta quella roba
se no avrebbe dovuto usare solo queste cose (era per fargli capire il meccanismo ma ora che ci penso non ha molto senso dargli anche i codici della fisica integrata)
codice semplificato :

Codice: Seleziona tutto

if distance_to_object(Player) < 900 && distance_to_object(Player) >= 150 {
//codice che vuoi tu per muoverti
//qui metti una variabile che allerti il nemico e gli faccia fare altre azioni se allerta e' uguale a 1 per esempio avere image_speed = 1 e quindi correre ah ma ricordati prima di inizializzarla nel create.
allerta = 1 }
 
if distance_to_object(Player) < 150 {
//codice che lo ferma
if possosparare = 1 { //se la variabile possosparare e' a 1 spara ricordati di inizializzarla nel create pero stavolta deve iniziare a 1
possosparare = 0

alarm[0] = 150 //dopo 5 secondi va in questo alarm poi in questo alarm te metti che la variabile posso sparare si resetta a 1
instance_create(x,y,freccia) //fai che crei una freccia o una cosa del genere
}}
PS : Dove c''e scritto codice che vuoi tu per muoverti e codice che lo ferma cerca sul manuale e poi sostituisci i due commenti con il code che piu ti aggrada

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: Nemici che si fermano e sparano al giocare

Messaggio da Tizzio »

Imparate a indentare il codice
L'indentazione (o indentatura) è l'inserimento di una certa quantità di spazio vuoto all'inizio di una riga di testo. In tipografia il termine corretto è rientro. Nell'ambito della programmazione, l'indentazione è una convenzione utilizzata per esprimere al meglio la struttura di un codice.

Si tratta di un requisito non obbligatorio per molti linguaggi di programmazione e viene spesso messo in secondo piano. Tuttavia, è fondamentale per incrementare la leggibilità del codice, in particolare delle strutture di controllo come le condizioni o i loop.
ecco un tool automatico: http://jsbeautifier.org/

MagicFool
Membro
Messaggi: 189
Iscritto il: 25/10/2013, 14:43
Specialità: Artista
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Nemici che si fermano e sparano al giocare

Messaggio da MagicFool »

Sono riuscito a risolvere il problema, grazie

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 38 ospiti