Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: pucara en Marzo 29, 2010, 03:42:50 PM

Título: Bloques
Publicado por: pucara en Marzo 29, 2010, 03:42:50 PM
Al acabar Insectoids y para variar, decid? probar a hacer un juego tipo tetris. Como era obvio, los problemas no tardaron en presentarse, he resuelto muchos disfrutando de la satisfacci?n del bache superado, pero llegado un punto concreto me fren? en seco.
El problema es que cuando un "cuadradito" desaparece, el de arriba no cae hasta chocar con el de abajo.
Prob? varias formas de implementar place_free(x,y) pero sin ?xito.

Les dejo un croquis para que me entiendan:
(http://www.fileguru.com/images/b/2m_blocks_swapper_games_puzzle-15817.jpeg)




En la imagen donde se ven las estrellitas son huecos que deber?an llenarse con los cubitos de arriba.
?sa es la acci?n que quiero aprender a programar.

Espero haberme explicado y gracias por contestar  8)
Título: Re: Bloques
Publicado por: Genesis en Marzo 29, 2010, 05:34:38 PM
prueba esto=
En evento Step:
if place_free(x,y+1) gravity=0.5



espero que te sirva
Título: Re: Bloques
Publicado por: 3dgeminis en Marzo 29, 2010, 08:19:57 PM
Imaginate que estas haciendo un juego de plataformas y trata a los bloques como si fueran el personaje que controlas. Supongo que estas usando varios tipos de bloques, emparenta todos a uno principal, y coloca estos codigos en cada cuadrado:
STEP
if place_free(x,y+1) {gravity=0.5} else {gravity=0}

COLISION CON BLOQUE PRINCIPAL
move_contact_all(270,12)
vspeed=0

no lo he probado pero deveria funcionar bien.
Título: Re: Bloques
Publicado por: pucara en Marzo 29, 2010, 09:53:38 PM
Gracias por contestar chicos, pero no way... =[
El c?digo es parecido a lo que yo usaba y no funciona, por lo menos de la forma en que lo hago yo.
Lo mejor que logr? es creando un objeto que haga tope abajo de los bloques ( 8)) en ese caso logro frenarlos, pero los bloques siguen acumul?ndose encima del tope hasta que se ve s?lo una fila.

Si alguien puede aportar algo m?s, le estar?a muy agradecido.

Saludos  8)
Título: Re: Bloques
Publicado por: Wadk en Marzo 29, 2010, 10:56:51 PM
Prob? as?:
var yp;
yp=y;
with(objBloque){
    if!(id=other.id){
        solid=true;
    }
}
move_contact_solid(270,3);
Título: Re: Bloques
Publicado por: soccer2008 en Marzo 29, 2010, 11:26:08 PM
el depth de los bloques debe ser mayor en valor negativo a los bloques huecos y luego reemplazas estos x los q est?n encima XD XD XD
Título: Re: Bloques
Publicado por: pucara en Marzo 30, 2010, 10:26:26 AM
Cita de: soccer2008 en Marzo 29, 2010, 11:26:08 PM
el depth de los bloques debe ser mayor en valor negativo a los bloques huecos y luego reemplazas estos x los q est?n encima XD XD XD
Se supone que tengo que cubrir huecos con otros bloques, no sustituirlos (aunque ser?a una opci?n)
Citarvar yp;
yp=y;
with(objBloque){
    if!(id=other.id){
        solid=true;
    }
}
move_contact_solid(270,3);

var yp;
yp=y; //estas dos lineas no entiendo para que son

#faltar?a indicarle que caigan (y+=1), pero cuando lo hago caen al vac?o todos los bloques.
#move_contact_solid(270,3)//?Para qu? sirve esta funci?n?

Me estoy empezando a desesperar.... 8)

Gracias a ambos por sus intentos. Adjunto el ejemplo tal y como lo tengo yo con el "obj_tope" para frenar los bloques, si pudieran revisarlo ser?a genial.

DESCARGA EDITABLE:  http://www.datafilehost.com/download-2eb19092.html
DESCARGA EJECUTABLE:   http://www.datafilehost.com/download-e75255ca.html

Saludos, que caigan los bloques, pero no los ?nimos  8)
Título: Re: Bloques
Publicado por: soccer2008 en Marzo 30, 2010, 03:40:48 PM
Me refer?a a q los reemplazes en la posicion de dicho bloque, disculpame sino te entend? bien :-[ :-[ :-[...algo asi m?s o menos: en dos variables almacenas  las posiciones de los bloques y luego reemplazas la posicion de dicho bloque con dichas variables XD XD XD
Título: Re: Bloques
Publicado por: Wadk en Marzo 30, 2010, 05:03:04 PM
Pucara, prob? el c?digo.
Las l?neas
var yp;
yp=y;
son por si quer?s que el c?digo deje de funcionar cuando el bloque haya tocado otro por debajo, si al final de ese c?digo "y" es igual a "yp", el bloque dej? de moverse.
move_contact_solid mueve el objeto un n?mero de pixeles o hasta que choque con un objeto s?lido en una direcci?n determinada, en este caso hacia abajo (270) 3 pixeles, mejor que simplemente "y+=3". Lo que me falt? es poner esto al final:
with(objBloque){
   solid=false;
}

El c?digo ser?a as?:
var yp;
yp=y;
with(objBloque){
   if!(id=other.id){
       solid=true;
   }
}
move_contact_solid(270,3);
with(objBloque){
   solid=false;
}

Y si quer?s pod?s sacar las primeras dos l?neas, si no te sirven.

Por cierto, supongo que los bloques no est?n marcados como s?lidos... si lo est?n, el c?digo deber?a ser as?:
var yp;
yp=y;
solid=false;
move_contact_solid(270,3);
solid=true;
Título: Re: Bloques
Publicado por: pucara en Marzo 30, 2010, 10:03:38 PM
#Soccer, no te disculpes, faltar?a m?s... La verdad me centr? m?s en el c?digo que me paso Wadk, ya que me pareci? m?s interesante. Agradezco que colabores, veo todas tus respuestas en el foro y no paras de ayudar a la gente, cosa por la cual me quito el sombrero.

#Wadk: Tambi?n agradezco tu molestia para intentar ayudarme, el primer c?digo lo prob?, pero realmente no funcion?. Espero que con lo ?ltimo que pusiste se solucione,el lunes lo sabremos..

Saludos  8)
Título: Re: Bloques
Publicado por: 3dgeminis en Marzo 31, 2010, 08:13:57 PM
Te dejo un ejemplo (con el boton izquierdo del raton se destruyen los bloques)
Título: Re: Bloques
Publicado por: pucara en Abril 04, 2010, 10:01:42 PM
Cita de: 3dgeminis en Marzo 31, 2010, 08:13:57 PM
Te dejo un ejemplo (con el boton izquierdo del raton se destruyen los bloques)

Hola 3Dgeminis, gracias por tu ejemplo, pero no va, me tira que no es un archivo de GM. ?Lo podr?as revisar? Uso GM7pro.

Muchas gracias  8)

Título: Re: Bloques
Publicado por: soccer2008 en Abril 05, 2010, 04:17:36 PM
Cita de: pucara en Abril 04, 2010, 10:01:42 PM
Cita de: 3dgeminis en Marzo 31, 2010, 08:13:57 PM
Te dejo un ejemplo (con el boton izquierdo del raton se destruyen los bloques)

Hola 3Dgeminis, gracias por tu ejemplo, pero no va, me tira que no es un archivo de GM. ?Lo podr?as revisar? Uso GM7pro.

Muchas gracias  8)



quizas lo haya hecho en gm 8 x eso es q tira de ese error, de momento se me ocurre esto:

en un array mete todos los movimientos hasta dicho bloque y cuando llega al ultimo usa esto:

x=bloque.x
y=bloque.y


saludos XD XD XD
Título: Re: Bloques
Publicado por: pucara en Abril 06, 2010, 02:43:47 PM
#Wadk
      prob? tu c?digo y funciona a medias, o lo m?s probable es que yo lo hago mal. Te cuento: en el mejor de los casos los bloques caen en determinadas ocasiones, no siempre, adem?s no logro encontrar el patr?n de comportamiento de los mismos para poder depurar el error, lo hacen de forma rara.
Por ejemplo, la mayor?a de las veces caen si no los rodean ning?n bloque, otras si est?n por debajo de la mitad de la pantalla... no s? bien por qu? lo hacen as?. Quiz?s haya un m?todo m?s sencillo usando place_free pero tampoco logro hacerlo funcionar. Creo que un ejemplo pr?ctico solucionar?a el problema.
Otra opci?n es inventar el juego de bloques que no caen...yo que s?.
El m?todo de Soccer2008 tampoco logro implementarlo.

En fin, muchas gracias a todos, en serio. Dejo el tema abierto por si alguien se le ocurre algo.


Título: Re: Bloques
Publicado por: 3dgeminis en Abril 06, 2010, 07:52:16 PM
Aqui esta el ejemplo en gm7
Título: Re: Bloques
Publicado por: pucara en Abril 07, 2010, 08:23:11 PM
Cita de: 3dgeminis en Abril 06, 2010, 07:52:16 PM
Aqui esta el ejemplo en gm7

No quiero ser pesado, pero el archivo no va. Me dice lo mismo que el anterior, o quiz?s quieras postear directamente el c?digo.

Muchas gracias por volver a revisarlo
Título: Re: Bloques
Publicado por: Wadk en Abril 07, 2010, 11:56:02 PM
Citarprob? tu c?digo y funciona a medias, o lo m?s probable es que yo lo hago mal. Te cuento: en el mejor de los casos los bloques caen en determinadas ocasiones, no siempre, adem?s no logro encontrar el patr?n de comportamiento de los mismos para poder depurar el error, lo hacen de forma rara.
Por ejemplo, la mayor?a de las veces caen si no los rodean ning?n bloque, otras si est?n por debajo de la mitad de la pantalla... no s? bien por qu? lo hacen as?. Quiz?s haya un m?todo m?s sencillo usando place_free pero tampoco logro hacerlo funcionar. Creo que un ejemplo pr?ctico solucionar?a el problema.
Otra opci?n es inventar el juego de bloques que no caen...yo que s?.
Hmmm... qu? raro. Decime, ?los bloques son s?lidos o no? ?y est?s seguro de que no se tocan nunca (es decir, que ninguno est? "arriba" o "abajo" de otro)?
Título: Re: Bloques
Publicado por: pucara en Abril 08, 2010, 11:36:36 AM
Cita de: Wadk en Abril 07, 2010, 11:56:02 PM
Hmmm... qu? raro. Decime, ?los bloques son s?lidos o no? ?y est?s seguro de que no se tocan nunca (es decir, que ninguno est? "arriba" o "abajo" de otro)?

Claro que estoy seguro.

Algo curioso: Si reduzco el tama?o de los bloques (image_xscale,image_yscale) caen todos al vac?o , a pesar que por debajo de la view hay un objeto que hace de tope a lo largo.

Te paso el editable por MP por si queer?s pegarle un ojo.

Gracias por tu inter?s.
Título: Re: Bloques
Publicado por: Wadk en Abril 08, 2010, 08:04:17 PM
Voy a ver que puedo hacer, pero te aviso que hoy y ma?ana voy a estar algo ocupado, no s? cu?ndo puedo intentarlo.
Título: Re: Bloques
Publicado por: 3dgeminis en Abril 08, 2010, 08:12:22 PM
Postea el editable
Título: Re: Bloques
Publicado por: pucara en Abril 08, 2010, 08:18:32 PM
CitarVoy a ver que puedo hacer, pero te aviso que hoy y ma?ana voy a estar algo ocupado, no s? cu?ndo puedo intentarlo.
No hay problema, faltar?a m?s. Gracias por intentarlo.

Cita de: 3dgeminis en Abril 08, 2010, 08:12:22 PM
Postea el editable

descarga del editable: http://www.datafilehost.com/download-61ca3c1c.html

Gracias por tu ayuda  8)
Título: Re: Bloques
Publicado por: soccer2008 en Abril 09, 2010, 02:04:58 PM
voy a revisar el editable y ver? q puedo hacer XD XD XD
Título: Re: Bloques
Publicado por: pucara en Abril 09, 2010, 07:14:16 PM
Cita de: soccer2008 en Abril 09, 2010, 02:04:58 PM
voy a revisar el editable y ver? q puedo hacer XD XD XD

Gracias  8)
Título: Re: Bloques
Publicado por: pucara en Abril 16, 2010, 10:15:55 AM
Resubo el post por si alguien tiene alguna soluci?n o idea, por mi parte lo poco que pude hacer queda demasiado mal.

Gracias  8)
Título: Re: Bloques
Publicado por: soccer2008 en Abril 16, 2010, 06:04:58 PM
no se me ocurre ninguna idea, pero termino de hacer un trabajo q me han dado para hacer en c++ y luego veo tu ejemplo. saludos XD XD XD
Título: Re: Bloques
Publicado por: Wadk en Abril 16, 2010, 07:11:41 PM
Disculpa, Pucara, pero yo no pude hacer mucho. Tendr?a que reescribir todo el engine que ya est? hecho.
Título: Re: Bloques
Publicado por: pucara en Abril 17, 2010, 12:36:09 AM
Muchas gracias a ambos. Cualquier aporte se agradecer?.