Creare una AI per creare degli animali

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Avatar utente
Simsure
Membro
Messaggi: 223
Iscritto il: 13/09/2013, 21:54
Specialità: Programmazione
Uso: GM:Studio 2
Località: dietro di te...
Contatta:

Creare una AI per creare degli animali

Messaggio da Simsure »

Salve avrei un progetto e vi rientrano gli animali,però mi servirebbe che questi animali non se ne andassero in giro a caso e basta ma che si comportino come tale,vorrei sapere come posso creare una buona inteligenza usando i codici o le icone.

ecco cosa mi servirebbe:
---Non so se questo si può fare in game maker ma vorrei poter creare una sorta di TIPO generale,nel senso ci devono essere due TIPI di animali gli erbivori e i carnivori solamente che per semplificare le cose mi chiedevo cè un modo per creare una CATEGORIA di oggetti e metterci dentro gli oggetti che vi appartengono?
a questo punto potrei creare degli eventi del tipo se variabile fame arriva a 0 (questo lo so fare) e se obj_lupo è carnivoro (quindi rientra nella categoria fatta prima) allora obj_lupo si deve muovere verso obj_pecora, se obj_lupo entra in collisione con obj_pecora questa muore e scompare e la variabile fame ritorna alta (questa cosa anche la so fare)

il probelma è quindi se è possibile cerare uan categoria da associare ad un oggetto e poi metterci delle condizioni.

---lo avevo chiesto anche in un altro topic ma dato che non mi è ancora chiaro lo richiedo qui

il mondo è fatto a blocchi 2d come terraria e gli animali si spostano a destra e a sinistra ma se incontrano una collina come fanno a saltare in modo realistico sul blocco piu in alto e poi continuare a camminare? o se poi tornano indietro a cadere in modo realistico dal blocco?
Queste sono le basi del platform ma di cui io non sò molto

per ora questo,

grazie mille
Immagine
Spoiler
Immagine

Avatar utente
pacmino
GMI Guru
Messaggi: 2569
Iscritto il: 03/06/2009, 16:38
Specialità: Scazzato cronico
Uso: GM:Studio 2
Località: Seconda stella a destra questo è il cammino e poi dritto, fino al mattino...
Contatta:

Re: Creare una AI per creare degli animali

Messaggio da pacmino »

non devi creare nessuna categoria

onj_lupo e obj_pecora sono oggetti

tu nel codice dell'oggetto onj_lupo metterai se fame=0 muoviti verso l'istanza di obj_pecora più vicina
nell'oggetto obj_pecorra metterai in collisione con obj_lupo l'azione che fa distruggere la pecora

lo so che tu vorresti il codice esatto ma se non provi tu a mettere il codice magari anche sbagliato non impari :mrgreen:

ovviamente essendo l'ambiente a blocchi è tutto più difficile perchè devi prevedere il salto, dovresti mostrare una immagine di come è il terreno
Ultima modifica di pacmino il 19/09/2013, 16:46, modificato 2 volte in totale.
Immagine

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: Creare una AI per creare degli animali

Messaggio da Simsure »

Cavolo che idiota in effetti è vero!

non sò perche ma mi era venuta questa idea complicata in testa grazie è piu semplice di quel che sembrava!

EDIT:
Ha ecco però per che mi serviva mi sono ricordato,nella mappa ci sono piu di questi due animali e io vorrei che il lupo andasse da una animale "erbivoro" casuale per questo volevo sapere se si potesse creare una categoria,oppure cè un'altro modo per fargli scegliere una tipo di oggetto a caso fra diversi tipi di oggetti?
Immagine
Spoiler
Immagine

Avatar utente
pacmino
GMI Guru
Messaggi: 2569
Iscritto il: 03/06/2009, 16:38
Specialità: Scazzato cronico
Uso: GM:Studio 2
Località: Seconda stella a destra questo è il cammino e poi dritto, fino al mattino...
Contatta:

Re: Creare una AI per creare degli animali

Messaggio da pacmino »

ma di solito il lupo approfitta del cibo più vicino e facile da acchiappare :asd:

se ci sono più animali erbivori puoi creare tre ad esempio tipi di erbivori in ognuno di essi metti che sono parenti (parent) di un generico obj_erbivoro e fai dirigere il lupo verso il più vicino obj_erbivoro che potrà essere una capra una pecora un cervo eccetera
Immagine

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: Creare una AI per creare degli animali

Messaggio da Simsure »

pacmino ha scritto:ma di solito il lupo approfitta del cibo più vicino e facile da acchiappare :asd:

se ci sono più animali erbivori puoi creare tre ad esempio tipi di erbivori in ognuno di essi metti che sono parenti (parent) di un generico obj_erbivoro e fai dirigere il lupo verso il più vicino obj_erbivoro che potrà essere una capra una pecora un cervo eccetera

Parent è un'icona o devo usarlo nel codice? se è un comando per il codice come lo strutturo metto tipo:

Codice: Seleziona tutto

parent=obj_pecora,obj_cervo,obj_maiale
Immagine
Spoiler
Immagine

Avatar utente
gameplay_extreme
GMI VIP
Messaggi: 3824
Iscritto il: 13/11/2010, 16:23
Uso: GM:Studio 2
Contatta:

Re: Creare una AI per creare degli animali

Messaggio da gameplay_extreme »

oppure cè un'altro modo per fargli scegliere una tipo di oggetto a caso fra diversi tipi di oggetti?

Codice: Seleziona tutto

oggetto_a_caso = choose(obj, obj2, obj3, obj4 [...])
questo semplice codice memorizza nella var oggetto_a_caso un oggetto scelto tra quelli indicati come argomenti (cioè quelli traparentesi)
volevo sapere se si potesse creare una categoria
crei un oggetto erbivoro_obj (vuoto)
quando crei gallina_obj poni erbivoro_obj come parent
quando crei cervo_obj poni erbivoro_obj come parent
quando crei mucca_obj poni erbivoro_obj come parent
ecc.

crei un oggetto carnivoro_obj (vuoto)
quando crei leone_obj poni carnivoro_obj come parent
quando crei lupo_obj poni carnivoro_obj come parent
quando crei cane_obj poni carnivoro_obj come parent
ecc.

per esempio se da un' istanza di lupo fai

Codice: Seleziona tutto

ii = instance_nearest(x,y, erbivoro)
in ii viene memorizzato il codice identificativo dell' erbivoro più vicino,
se poi fai

Codice: Seleziona tutto

if point_distance(x,y,ii.x,ii.y) < 30
 {with (ii) instance_destroy( )}
il lupo mangerà tutti gli erbivori che saranno abbastanza vicini (tanto per fare un esempio)

per quanto riguarda il salto ripeto: un salto è formato da una forza che porta verso l'alto e da una gravità che porta verso il basso.

non so se era questo che intendevi
:cappa:
Immagine
clicca sul logo qui sopra per info e download riguardo ai miei software o per sapere come si crea un videogioco!

iscriviti qui gratuitamente a GMI !
Spoiler
- Una curiosità: come mai quell' ordine ?
- Perché formava una scaletta molto carina da vedere.


"ah ah...grazie alla annotazione scientifica ti ho fregato!"
(come disse la calcolatrice al display)

Avatar utente
pacmino
GMI Guru
Messaggi: 2569
Iscritto il: 03/06/2009, 16:38
Specialità: Scazzato cronico
Uso: GM:Studio 2
Località: Seconda stella a destra questo è il cammino e poi dritto, fino al mattino...
Contatta:

Re: Creare una AI per creare degli animali

Messaggio da pacmino »

per settare il parent c'è una apposita casella nell'editor di ogni singolo oggetto, non so quale versione usi di gm

crei un oggetto chiamato obj_erbivoro e lo lasci senza sprite, poi nei singoli oggetti obj_pecora obj_capra eccetera nel menu a tendina vicino a parent metti per ognuno obj_erbivoro
Immagine

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: Creare una AI per creare degli animali

Messaggio da Simsure »

[quote=quando crei gallina_obj poni erbivoro_obj come parent
quando crei cervo_obj poni erbivoro_obj come parent
quando crei mucca_obj poni erbivoro_obj come parent
ecc.

crei un oggetto carnivoro_obj (vuoto)
quando crei leone_obj poni carnivoro_obj come parent
quando crei lupo_obj poni carnivoro_obj come parent
quando crei cane_obj poni carnivoro_obj come parent
ecc. [/quote]

Si ma come faccio a porre un parent?

Sono un disastro con questo salto non cè un codice pronto che faccia saltare gli oggetti di un blocco o roba cosi? oppure una guida al proposito?
Immagine
Spoiler
Immagine

Avatar utente
gameplay_extreme
GMI VIP
Messaggi: 3824
Iscritto il: 13/11/2010, 16:23
Uso: GM:Studio 2
Contatta:

Re: Creare una AI per creare degli animali

Messaggio da gameplay_extreme »

Si ma come faccio a porre un parent?
leggi la risposta di pacmino
Sono un disastro con questo salto non cè un codice pronto che faccia saltare gli oggetti di un blocco o roba cosi? oppure una guida al proposito?
in quel codice che avevo postato nell'altro topic che hai aperto ("Condizione di creazione oggetto e variabili?" ) c'era il codice del movimento (destra - sinistra) e del salto (in 2D) solo che era "agganciato" alla tastiera...come ti dicevo bisognava modificare le condizioni (quelle che vengono dopo gli "if" insomma)
Immagine
clicca sul logo qui sopra per info e download riguardo ai miei software o per sapere come si crea un videogioco!

iscriviti qui gratuitamente a GMI !
Spoiler
- Una curiosità: come mai quell' ordine ?
- Perché formava una scaletta molto carina da vedere.


"ah ah...grazie alla annotazione scientifica ti ho fregato!"
(come disse la calcolatrice al display)

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: Creare una AI per creare degli animali

Messaggio da Simsure »

Forse mi ucciderai ma........come?
Ultima modifica di Simsure il 19/09/2013, 17:27, modificato 1 volta in totale.
Immagine
Spoiler
Immagine

Avatar utente
pacmino
GMI Guru
Messaggi: 2569
Iscritto il: 03/06/2009, 16:38
Specialità: Scazzato cronico
Uso: GM:Studio 2
Località: Seconda stella a destra questo è il cammino e poi dritto, fino al mattino...
Contatta:

Re: Creare una AI per creare degli animali

Messaggio da pacmino »

non ci può essere un codice esatto per il salto perchè dipende da come sono posizionati i blocchi che rappresentano il terreno

ci può essere un codice generico per saltare ma che deve essere adattato alle condizioni reali della tua room

immagina una scala che ha scalini di diversa altezza
Immagine

Avatar utente
Vallo92
GMI Advanced
Messaggi: 1508
Iscritto il: 15/07/2011, 20:26
Specialità: Grafico
Uso: GM:Studio 2
Contatta:

Re: Creare una AI per creare degli animali

Messaggio da Vallo92 »

Blacksoul ha scritto:Forse mi ucciderai ma.......come?
Questo è il codice che ti ha postato gameplay nell'altra discussione:
evento step

Codice: Seleziona tutto

if (keyboard_check(vk_right) && place_free(x+6,y))   
 {x=x+6} 
if (keyboard_check(vk_left) && place_free(x-6,y))   
 {x=x-6}
  
if place_free(x,y+1)        
 {gravity = 0.5} 
else 
 {gravity = 0} 
  
if (!place_free(x,y+1) && keyboard_check(vk_space))   
 {vspeed = -10}
  
if vspeed > 10   vspeed = 10 
evento collisione con wall

Codice: Seleziona tutto

move_contact_solid(direction,-1) 
vspeed = 0 
Come ti ha detto già lui, ti basterà modificare le "if" di questo codice per ottenere un movimento (almeno basilare) di un png.
Usa delle scelte random per rendere casuale tutti i movimenti possibili. Poi per non farlo muovere in continuazione puoi usare degli alarm! ;)
-Questi occhiali da sole le stanno benissimo. Vuole provarli con le lenti più scure?
- Si vede che le sto guardando le tette?
- Si
- Allora si

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: Creare una AI per creare degli animali

Messaggio da Simsure »

Vallo92 ha scritto:
Blacksoul ha scritto:Forse mi ucciderai ma......come?
Questo è il codice che ti ha postato gameplay nell'altra discussione:
evento step

Codice: Seleziona tutto

if (keyboard_check(vk_right) && place_free(x+6,y))   
 {x=x+6} 
if (keyboard_check(vk_left) && place_free(x-6,y))   
 {x=x-6}
  
if place_free(x,y+1)        
 {gravity = 0.5} 
else 
 {gravity = 0} 
  
if (!place_free(x,y+1) && keyboard_check(vk_space))   
 {vspeed = -10}
  
if vspeed > 10   vspeed = 10 
evento collisione con wall

Codice: Seleziona tutto

move_contact_solid(direction,-1) 
vspeed = 0 
Come ti ha detto già lui, ti basterà modificare le "if" di questo codice per ottenere un movimento (almeno basilare) di un png.
Usa delle scelte random per rendere casuale tutti i movimenti possibili. Poi per non farlo muovere in continuazione puoi usare degli alarm! ;)

Lo so,Lo so MA IO NON SO NIENTE DI CODICE GML NON HO IDEA DI COME MODIFICARLO!!! T_T
Immagine
Spoiler
Immagine

Avatar utente
Vallo92
GMI Advanced
Messaggi: 1508
Iscritto il: 15/07/2011, 20:26
Specialità: Grafico
Uso: GM:Studio 2
Contatta:

Re: Creare una AI per creare degli animali

Messaggio da Vallo92 »

Blacksoul ha scritto:Lo so,Lo so MA IO NON SO NIENTE DI CODICE GML NON HO IDEA DI COME MODIFICARLO!!! T_T
Quella che vuoi fare non è una cosa difficile... Puoi tranquillamente riuscirci con l'aiuto del manuale visto che il 50% del codice te lo ha già postato gameplay.
So che per chi è alle prime armi (del resto come lo sono io) non è facile scrivere o capire determinati codici...Ma se ci troviamo di fronte ad un problema, e non ci si sbatte più volte la testa, non impareremo mai a programmare. Sicuramente gli aiuti e suggerimenti non fanno male... Ma cercare prima di tutto a programmare con la propria testa e sudore è importante (te lo dice uno che fino a poco tempo fa chiedeva di tutto su questo forum, e invece adesso cerca di risolvere il più dei suoi problemi utilizzando il tasto cerca del manuale). ;)


Edit:
Se non te la senti ancora di addentrarti nel GML, puoi benissimo programmare quello che stai richiedendo utilizzando semplicemente le icone di GM! ;)
-Questi occhiali da sole le stanno benissimo. Vuole provarli con le lenti più scure?
- Si vede che le sto guardando le tette?
- Si
- Allora si

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: Creare una AI per creare degli animali

Messaggio da Simsure »

Ho trovato questo codice il problema di questo tizio è quasi lo stesso solo che lui riusciva a farli saltare ma non a muovere nella direzione del blocco ora lo provo

Codice: Seleziona tutto

if (action == "idle") {hspeed = 0;}; 
// Left:
else if (action == "left")
    {
    if (!collision_point(x-16,y+48,par_solid,1,0)
    && !collision_point(x-16,y+80,par_solid,1,0))
        {
        danger = true;
        hspeed = 0;
        action = choose("idle","right");
        }; 
    else 
        {
        if (on_ground == true) && (!place_free(x-2,y) && place_free(x-2,y-32)) {vspeed -= 7;};
        hspeed = -2;
        danger = false;
        };
    // Right:
    }; 
else if action = "right"   
    {
    if (!instance_position(x+48,y+48,par_solid)
    && !instance_position(x+48,y+80,par_solid))
        {
        danger = true;
        hspeed = 0;
        action = choose("idle","left");
        } ;
    else 
        {
        if (on_ground == true) && (!place_free(x+2,y) && place_free(x+2,y-32)) {vspeed -= 7;};
        hspeed = 2;
        danger = false;
        };
    };
EDIT

Ho inserito in codice solamente che ci sono delle variabili tipo "action" che questo tipo ha inserito nel suo gioco e che io non so come settare (non nel senso che non so creare le variabili ma non so come l'ha predisposta questo tipo nel suo gioco)
Immagine
Spoiler
Immagine

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: Creare una AI per creare degli animali

Messaggio da Simsure »

Però mi sta venendo in mente come farlo da me :)

Mi servirebeb solo sapere che comando per codice usare per dire

se sei girato verso destra e
se davanti a te cè obj_blocco

allora

salta


per il salta sono indeciso su come farlo ma le prime condizioni dovrebbero funzionare come le dico in codice? (anche se la direzione so gia come si fa,però non ho mai messo in codice due condizioni una dopo l'altra
Immagine
Spoiler
Immagine

Avatar utente
Vallo92
GMI Advanced
Messaggi: 1508
Iscritto il: 15/07/2011, 20:26
Specialità: Grafico
Uso: GM:Studio 2
Contatta:

Re: Creare una AI per creare degli animali

Messaggio da Vallo92 »

Non andare a prendere codici di altri utenti per poi copiarli ed incollarli... Puoi benissimo prenderlo come esempio per studiarlo e creare un codice tutto tuo.
Per quanto riguarda le tue domande gameplay ti aveva già postato dei codici in riguardo nel tuo altro topic: http://gmitalia.altervista.org/gmi_foru ... 39#p169539
-Questi occhiali da sole le stanno benissimo. Vuole provarli con le lenti più scure?
- Si vede che le sto guardando le tette?
- Si
- Allora si

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: Creare una AI per creare degli animali

Messaggio da Simsure »

Blacksoul ha scritto:Però mi sta venendo in mente come farlo da me :)

Mi servirebeb solo sapere che comando per codice usare per dire

se sei girato verso destra e
se davanti a te cè obj_blocco

(anche se la direzione so gia come si fa,però non ho mai messo in codice due condizioni una dopo l'altra

Infatti mi riferivo a quella volta in cui gameplay me lo ha spiegato e sò come fare

se sei girato verso destra

ma non ho idea di come fare in codice se davanti a te cè un oggetto
Immagine
Spoiler
Immagine

Avatar utente
gameplay_extreme
GMI VIP
Messaggi: 3824
Iscritto il: 13/11/2010, 16:23
Uso: GM:Studio 2
Contatta:

Re: Creare una AI per creare degli animali

Messaggio da gameplay_extreme »

@blacksol se guradi bene il codici te li avevo dati
se sei girato verso destra e

Codice: Seleziona tutto

if (direction == 0) //nel post linkato da vallo
se davanti a te cè obj_blocco

Codice: Seleziona tutto

if (place_free(x+4,y)) //questo era nel codice del movimento di base 2D
salta

Codice: Seleziona tutto

vspeed = -8 //questo era nel codice del movimento di base 2D
Ultima modifica di gameplay_extreme il 20/09/2013, 20:22, modificato 1 volta in totale.
Immagine
clicca sul logo qui sopra per info e download riguardo ai miei software o per sapere come si crea un videogioco!

iscriviti qui gratuitamente a GMI !
Spoiler
- Una curiosità: come mai quell' ordine ?
- Perché formava una scaletta molto carina da vedere.


"ah ah...grazie alla annotazione scientifica ti ho fregato!"
(come disse la calcolatrice al display)

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: Creare una AI per creare degli animali

Messaggio da Simsure »

Bene ma mettendoli semplicemente uno sotto l'altro (ovviamente mi da errore) come vanno disposte le condizioni IF ?

Se cè mi lincate un tutorial generale alle IF del GML ?

EDIT:
in pratica come posso mettere due condizioni IF una sotto l'altra?
Immagine
Spoiler
Immagine

Rispondi

Chi c’è in linea

Visitano il forum: Google [Bot] e 42 ospiti