Buenos días,
Quería saber cómo puedo hacer que al pulsar sobre un objeto en el juego explote y se lleve por delante todos los objetos que tenga alrededor.
Lo que he probado ha sido eliminar dichos objetos pero al no especificar cuales me borra todos los que hay en la rom.
Gracias de antemano.
Hola mchgforos, a ver si te sirve este código:
En el objeto de la explosión, en el evento <Create> :
with(objeto que quieras eliminar)
{
if distance_to_object(objeto de la explosion)<100
{
instance_destroy()
}
}
El número 100 ajústalo según lo que te vaya bien.
Ten en cuenta que con este método tendrás que hacer un código para cada objeto que quieras que se destruya. Aunque es posible que usando Parents solo necesites que destruya al Parent y así se destruiría el objeto "hijo" de ese parent. Pero de eso no estoy seguro.
Un saludo!
Puedes hacer que al momento de la explosion aparezca un objeto fuego, el sprite del fuego tenga un fondo mas grande que el sprite en si, y todo lo que tenga contacto con eso de destruya
Cita de: Mega G en Marzo 24, 2014, 07:00:06 PM
Hola mchgforos, a ver si te sirve este código:
En el objeto de la explosión, en el evento <Create> :
with(objeto que quieras eliminar)
{
if distance_to_object(objeto de la explosion)<100
{
instance_destroy()
}
}
El número 100 ajústalo según lo que te vaya bien.
Ten en cuenta que con este método tendrás que hacer un código para cada objeto que quieras que se destruya. Aunque es posible que usando Parents solo necesites que destruya al Parent y así se destruiría el objeto "hijo" de ese parent. Pero de eso no estoy seguro.
Un saludo!
He probado esto pero no me funciona. El problema es que lanzo una bomba y lo que quiero es que al explotar lo hagan también las bombas de alrededor pero no me sale con este código. Por cierto, hay diferentes bombas y pueden explotar tanto las que usan el mismo objeto como las que son de diferente objeto, la única diferencia es el color y que cada una tiene unas variables del juego diferentes.
Cita de: gortz en Marzo 24, 2014, 09:24:12 PM
Puedes hacer que al momento de la explosion aparezca un objeto fuego, el sprite del fuego tenga un fondo mas grande que el sprite en si, y todo lo que tenga contacto con eso de destruya
Probaré esto a ver si me funciona bien. Gracias.
Cita de: mchgforos en Marzo 24, 2014, 09:54:06 AM
Buenos días,
Quería saber cómo puedo hacer que al pulsar sobre un objeto en el juego explote y se lleve por delante todos los objetos que tenga alrededor.
Es mas fácil ayudar cuando desde un principio se dan detalles exactos de lo que se pretende hacer. El código de Mega G es correcto para lo que pediste en el primer post
Cita de: mchgforos en Marzo 25, 2014, 12:52:39 AM
El problema es que lanzo una bomba y lo que quiero es que al explotar lo hagan también las bombas de alrededor pero no me sale con este código.
Antes no habías mencionado que los objetos de alrededor son también bombas que deben explotar, esto cambia la lógica de los códigos. ¿qué pasos haces para que una bomba explote en tu juego?
Cita de: penumbra en Marzo 25, 2014, 02:18:17 AM
Cita de: mchgforos en Marzo 24, 2014, 09:54:06 AM
Buenos días,
Quería saber cómo puedo hacer que al pulsar sobre un objeto en el juego explote y se lleve por delante todos los objetos que tenga alrededor.
Es mas fácil ayudar cuando desde un principio se dan detalles exactos de lo que se pretende hacer. El código de Mega G es correcto para lo que pediste en el primer post
Cita de: mchgforos en Marzo 25, 2014, 12:52:39 AM
El problema es que lanzo una bomba y lo que quiero es que al explotar lo hagan también las bombas de alrededor pero no me sale con este código.
Antes no habías mencionado que los objetos de alrededor son también bombas que deben explotar, esto cambia la lógica de los códigos. ¿qué pasos haces para que una bomba explote en tu juego?
Perdón, no creí que fuese importante el que sean el mismo objeto hasta que vi que no me funcionaba el código.
La room tiene varias bombas distribuidas por el mapa y lo que hago es pulsar sobre una y que exploten las que tiene alrededor.
Cita de: mchgforos en Marzo 25, 2014, 09:43:02 AM
Perdón, no creí que fuese importante el que sean el mismo objeto hasta que vi que no me funcionaba el código.
La room tiene varias bombas distribuidas por el mapa y lo que hago es pulsar sobre una y que exploten las que tiene alrededor.
No hay problema, sólo lo menciono porque entre más detalles ofrezcas más makeros te pueden ayudar. Suponiendo que el objeto de las bombas se llama obj_bomba, y que hay un objeto obj_explosion que tiene un sprite animado de la explosión
1. En [CREATE] del obj bomba, pondría una variable
explotar = 0;2. En [CREATE] del objeto controlador (un objeto que no sea bomba, puede ser obj_controller o obj_player, etc)
bomba_id = -1 En [STEP] del obj controlador ( o donde hayas declarado la variable bomba_id)
bomba_id = instance_position(mouse_x, mouse_y, obj_bomba) //bomba_id almacena el id de la bomba (si el cursor del mouse está sobre dicha bomba)
if (mouse_check_button_pressed(mb_left)
{
if (bomba_id > 1000)
bomba_id. explotar = 1 //Si se hace click sobre la bomba, ésta debe explotar
}
En [STEP] del objeto bomba
if (explotar == 1)
{
instance_create(x, y, obj_explosion) //Crear una explosión en el mismo lugar donde está ubicada la bomba
instance_destroy() // Destruir el objeto bomba que "explotó"
}
Debes verificar la máscara del sprite de explosión para asegurarte que sea lo suficientemente grande si es que quieres que alcance a otras bombas. Todo el codigo anterior haría explotar la bomba sobre la que se hiciera click, para que la explosión se transmita a otras bombas, sería
[EV COLISION] del objeto explosion contra el obj_bomba
with (other)
{
explotar = 1 //Hacer que se cree otra explosión en la(s) bomba(s) dentro del alcance de la explosión anterior.
}
Por último, usas el evento [ANIMATION END] del objeto explosión para destruirlo al llegar a la última subimagen de la animación
instance_destroy()
A lo mejor se me escapa algo, pero más o menos te puedes dar una idea.