Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: eams1986 en Marzo 08, 2015, 09:55:23 PM

Título: Crear instancia en un solo EJE((solucionado))gracias a todos
Publicado por: eams1986 en Marzo 08, 2015, 09:55:23 PM
Amigos a ver como puedo lograr hacer que se me cree una instancia en el EJE Y necesito un rango de 200 a 800

pero me gustaria que en el mismo eje solo se cree una instacia a la ves he utilizado el random_range() pero me crea muchos y solo ocupo que se me cree uno a la ves.

Gracias
Título: Re:Crear instancia en solo EJE
Publicado por: penumbra en Marzo 08, 2015, 10:21:04 PM
[gml]randomize()
if !instance_exists(obj_rojo)
     instance_create (100, irandom_range(200, 800), obj_rojo)    Crea UNA SOLA instancia del objeto ob_rojo en X= 100 Y =200 a 800 (aleatoria)
[/gml]
Título: Re:Crear instancia en solo EJE
Publicado por: eams1986 en Marzo 08, 2015, 10:27:18 PM
Hola gracias por responder .No se por que pero no me esta creando nada de instancia.

Gracias
Título: Re:Crear instancia en solo EJE
Publicado por: eams1986 en Marzo 08, 2015, 10:51:30 PM
En el player collision con el bloque lo puse asi
pero no me crea nada

if vspeed>0
{
hspeed=0 //para la velocidad

randomize()
if !instance_exists(obj_block)
instance_create (x, irandom_range(200, 800), obj_block)

obj_block.hspeed=0 //cuando caigo en en el bloque el background se para
y=yprevious
move_contact_all(270,abs(vspeed))
vspeed=0
}

Nota:cuando el player pega con el block entonces que cree el sisguiendo en determinanda posicion.

Gracias
Título: Re:Crear instancia en solo EJE
Publicado por: penumbra en Marzo 08, 2015, 11:01:32 PM
Por eso siempre hay que dar más detalles. El código funciona para lo que mencionaste en el primer post.

No se crea ningún bloque porque ya existe un objeto bloque, y la condición crea un objeto bloque solamente si no existe ningún objeto bloque en la habitación.

Para solucionarlo, en lugar de if !instance_exists(obj_bloque) se debe usar if (instance_number < algo), donde algo es el límite de bloques que debe haber en la habitación

Otra manera, que creo se adapta mejor al juego, es usar una variable que cambie cuando haya colisión, de manera que las acciones sólo ocurran una vez por colisión, y no en cada step mientras haya colisión. Por ejemplo

CREATE:[gml]
crear_nuevo_bloque = 1[/gml]

STEP[gml]
if (crear_nuevo_bloque == false) and !place_meeting(x,y, obj_bloque)
     crear_nuevo_bloque = 1[/gml]

EV COLISION player - bloque[gml]
randomize()
if (crear_nuevo_bloque)
{
     instance_create (x, irandom_range(200, 800), obj_block)
     crear_nuevo_bloque = 0                             //Impedir la creación de mas bloques hasta que el jugador se aparte del bloque y vuelva a chocar con él
}[/gml]
Título: Re:Crear instancia en solo EJE
Publicado por: eams1986 en Marzo 09, 2015, 05:32:19 AM


randomize()
if (crear_nuevo_bloque)
{
    instance_create (400, irandom_range(600, 600), obj_block) //cuando cambio los valores del rango me aparecem un monton
    crear_nuevo_bloque = 1                                                 //eso es por que se crean muchos bloques
}

Hay algo que no esta funcionando  :'(
Título: Re:Crear instancia en un solo EJE
Publicado por: penumbra en Marzo 09, 2015, 06:08:37 AM
El código funciona, aquí está la prueba:
http://www.mediafire.com/download/esl29d7wr1j99ad/ejemplo.gmz (http://www.mediafire.com/download/esl29d7wr1j99ad/ejemplo.gmz)

Lo demás es adaptarlo para que se ajuste a tu juego, pero el 99% de la idea ya está realizada. TIP: Usa el debugger para saber donde ocurre la falla. Otra pista: la condición del STEP se puede cambiar para que en lugar de una función de colisión, se compruebe la distancia del player al bloque, creo que con eso se solucionaría.

Título: Re:Crear instancia en un solo EJE
Publicado por: eams1986 en Marzo 09, 2015, 02:55:56 PM
http://gyazo.com/8964726f3b660008914a1e548379d5f3 en el ejemplo que mando me da este error a que se debe
empiezo a notar que parece que es error de Game maker  :'( :'(

early Access v.1.99.355

Gracias
Título: Re:Crear instancia en un solo EJE
Publicado por: eams1986 en Marzo 09, 2015, 03:50:46 PM
lo he solucionado uno Lindas y hermosas (;) eran pero en mi game maker sigue apareciendo muchas bloques

randomize()
if (crear_nuevo_bloque)
{
     var caja = instance_create (x, irandom_range(50, 300), obj_caja);
     caja.gravity = 1.5;
     crear_nuevo_bloque = 0;
}

El error continua en el proyecto mio
Título: Re:Crear instancia en un solo EJE
Publicado por: 3dgeminis en Marzo 10, 2015, 03:50:53 AM
Proba de esta manera

var caja;
caja = instance_create (x, irandom_range(50, 300), obj_caja);
Título: Re:Crear instancia en un solo EJE
Publicado por: eams1986 en Marzo 10, 2015, 05:48:24 AM
Nada lo mismo.
Título: Re:Crear instancia en un solo EJE
Publicado por: 3dgeminis en Marzo 10, 2015, 07:54:06 AM
Borra  var  dejando solo caja = instance_create (x, irandom_range(50, 300), obj_caja);    y crea la variable caja en el evento CREATE
Título: Re:Crear instancia en un solo EJE
Publicado por: eams1986 en Marzo 11, 2015, 02:00:32 AM
igual :'(
Título: Re:Crear instancia en un solo EJE
Publicado por: penumbra en Marzo 11, 2015, 02:04:18 AM
sube tu proyecto