Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: wako91 en Septiembre 10, 2010, 11:46:56 PM

Título: Habitantes de un juego de gesti?n [SOLUCIONADO]
Publicado por: wako91 en Septiembre 10, 2010, 11:46:56 PM
Buenas, como puedo organizar el comportamiento de un personaje de un juego de gesti?n? (un ciudadano)

Hab?a pensado en un Step donde esta preestablecida su rutina que va llamando a distintas acciones.

Ej. trabajar=1 (tiempo X) trabajar=0; domir=1 (tiempoX) dormir=0 ...

?Alg?n consejo?

C?mo podr?a asignar a cada ciudadano generado por el juego un hogar distinto?
Título: Re: Habitantes de un juego de gesti?n
Publicado por: 15689 en Septiembre 11, 2010, 04:29:16 AM
podrias usar alarmas
por ejemplo:
en el objeto pers, en el evento create pon:
hora=0
alarm[0]=1


en el evento alarm[0]:
if hora=11
hora=0
else
hora+=1
alarm[0]=60*room_speed

esto lo que hace es que la alarma se llame a si misma cada minuto y le vaya sumando 1 a la variable tiempo, y se reinicia al llegar a la hora 12

en evento step:

if hora=6//despierta
{
<codigo>
}
else if hora=8//trabajar
{
<codigo>
}
else if hora=12//descansar
{
<codigo>
}
else if hora=13//trabajar
{
<codigo>
}
else if hora=16//ir a casa
{
<codigo>
}
else if hora=22//dormir
{
<codigo>
}

en si aqui es donde se determina que debe hacer pers segun la hora
es bastante basico pero espero que te sirva, suerte :)
Título: Re: Habitantes de un juego de gesti?n
Publicado por: wako91 en Septiembre 11, 2010, 01:46:31 PM
Eso es lo que he he hecho aunque sin alarma, se la a?adir? a ver que tal.

?Y a lo de asignar una casa (o un trabajo) a un ciudadano sin uno de ellos?

He conseguido que buscaran casa. Se encuentran buscando y cuando est?n cerca de una "entran" pero inmediatamente aparecen en una casa com?n (la primera que coloco supongo) en vez de la que han tocado. A parte esta el tema de como hacer que aparezca como ocupada.? En fin que l?o! xDD
Título: Re: Habitantes de un juego de gesti?n
Publicado por: slampdesign en Septiembre 11, 2010, 04:05:06 PM
hola, bueno yo primero buscaria sprites RPG, peque?os o charsets, debes hacer el mismo mecanismo que los fantasmitas de pacman o el juego "Treasure" que aparece en GM, es decir, que depende la direccion que vaya cambia su sprite..voy a ver si te hago un ejemplo...
Título: Re: Habitantes de un juego de gesti?n
Publicado por: wako91 en Septiembre 11, 2010, 06:22:23 PM
Lo mas dif?cil es que esa ser? SU casa por lo que el ciudadano deber? "memorizarla". Si no logro hacer funcionar este sistema optar? por otro pero espero poder conseguirlo.
Título: Re: Habitantes de un juego de gesti?n
Publicado por: knd144 en Septiembre 11, 2010, 06:38:22 PM
pues guarda la id de esta casa en una variable que inicialmente est? en false.
As?, si la variable casa=false empieza a buscar una casa hasta que la encuentra, y la id de esa casa se deposita en la variable casa del habitante... y pues supongo que poniendo una variable m?s en la casa que indique si est? ocupada o disponible se arregla de que solo escogan una casa desocupada. :-[
Título: Re: Habitantes de un juego de gesti?n
Publicado por: sbs91 en Septiembre 11, 2010, 06:58:31 PM
wako91 creo que puedo ayudarte,
en el room donde esten las casas, manten pulsao CONTROL y en haz click derecho en cada objeto casa, y le das a "create code" o algo asi, entonces te sale para escribir codigo. Asi las numeras, en ese codigo pones "casa=1" y en la siguiente "casa=2"

Luego, el ciudadano ha de tener una variable "micasa=1" y al elegir casa (supongo que al chocar con ella) pones micasa=other.casa y asi se le asigna la casa numerada

Es una idea mira ver si te sirve
Título: Re: Habitantes de un juego de gesti?n
Publicado por: wako91 en Septiembre 11, 2010, 08:18:49 PM
Si claro cualquier aportaci?n sirve lo que pasa que las casas no est?n en ninguna room, existe un men? en el que el jugador selecciona el edificio a colocar. ?Se puede hacer de todas formas?
Título: Re: Habitantes de un juego de gesti?n
Publicado por: slampdesign en Septiembre 12, 2010, 12:38:28 AM
En estos momentos te estoy haciendo un engine o ejemplo de lo que quieres, claro, debes esperar un poco porque, ahora colocaste:

Cita de: wako91 en Septiembre 11, 2010, 08:18:49 PM
las casas no est?n en ninguna room, existe un men? en el que el jugador selecciona el edificio a colocar. ?Se puede hacer de todas formas?

se paciente, estoy trabajando en eso...
Título: Re: Habitantes de un juego de gesti?n
Publicado por: Wadk en Septiembre 12, 2010, 01:41:44 AM
Hac? lo que dijo Knd.
Código (Create de Casa) [Seleccionar]
ocupada=false;
Código (Create de Persona) [Seleccionar]
casa=noone;
Código (Colisi?n Persona con Casa) [Seleccionar]
if(casa==noone && !other.ocupada){
    casa=other.id;
    other.ocupada=true;
}

En el objeto persona vas a tener la variable casa, la cual si es noone significa que la persona no tiene casa, de lo contrario pod?s acceder a las variables de su casa (tales como x e y) as?: casa.variable.
Por ejemplo, para hacer que el ciudadano vaya a su casa:
if(casa!=noone){ // Si es que tiene una casa...
    move_towards_point(casa.x,casa.y,3); // Se mueve en direcci?n a ella a una velocidad de 3.
}


Es lo mismo que dijo sbs pero mejor y m?s f?cil.
Título: Re: Habitantes de un juego de gesti?n
Publicado por: wako91 en Septiembre 13, 2010, 12:18:40 AM
??ooopa muchas gracias!!


Por curiosidad, una pregunta: ?En Argentina gramaticalmente es correcto escribir hac? o solo es una manera de escribirlo fon?ticamente? como escribir "x" = "por" o "porke" = "porque" y esas cosas.
Título: Re: Habitantes de un juego de gesti?n
Publicado por: Wadk en Septiembre 13, 2010, 01:01:18 AM
De nada :).

Decir "hac?" es 100% correcto en Argentina y en cualquier lado: http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=hacer
En Uruguay tambi?n se dice as? (yo soy uruguayo).
Título: Re: Habitantes de un juego de gesti?n
Publicado por: wako91 en Septiembre 13, 2010, 03:26:20 PM
si si ya lo se xD pero no me has entendido, me refer?a a si escribirlo as? "hac?" en vez de "hacer" se consideraba correcto. Y perdona cre?a que "hac?" escrito as? era cosa de argentinos :P

Es que lo he visto muchas veces y tenia curiosidad por preguntarlo.

Pero bueno que no me quiero desviar del tema... Y para buscar el objeto m?s pr?ximo? y decirse por uno (si hay 2 o mas)

Porque arriba casa hace referencia a una variable no? no a un objeto llamado "casa"
Título: Re: Habitantes de un juego de gesti?n
Publicado por: Wadk en Septiembre 13, 2010, 08:51:17 PM
S?, hab?a entendido bien y s?, se considera correcto como dije y en la p?gina que puse se puede comprobar haciendo click en conjugar (http://buscon.rae.es/draeI/SrvltGUIVerbos?origen=RAE&IDVERBO=6909).

Ac? est? el c?digo completo que ir?a en Step:
Código (Step) [Seleccionar]
if(casa!=noone){ // Si es que tiene una casa...
   move_towards_point(casa.x,casa.y,3); // Se mueve en direcci?n a ella a una velocidad de 3.
}else{ // Si NO tiene casa...
   with(objCasa){ // Desactivamos todas las casas ocupadas
       if(ocupada){
           instance_deactivate_object(id);
       }
   }
   if(!instance_exists(objCasa)){ // Si no hay casas desocupadas...
       // Hacemos algo.
   }else{ // Si las hay...
       var c;
       c=instance_nearest(x,y,objCasa);
       move_towards_object(c.x,c.y,3); // Nos movemos a la que quede m?s cercana a una velocidad de 3
   }
   instance_activate_all(); // Y posteriormente volvemos a activar todas las casas
}

Ten?s que reemplazar los objCasa por el nombre del objeto casa.
Título: Re: Habitantes de un juego de gesti?n
Publicado por: wako91 en Septiembre 14, 2010, 03:56:50 PM
?opa eso no lo vi! :P bueno gracias por el c?digo!!