Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

* Sponsor

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Intance_Destroy No me funciona  (Leído 322 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Marcusmaniacus

en: Agosto 07, 2018, 02:41:44 am
El código de mi juego no me esta sirviendo  Actualmente estoy utilizando un código que lleva a  detección de otro personaje 
pero el código que queiro no me funciona y mq ueiro matar !!! Este es el código alguien me peude decir como solucionarlo


instance_destroy(Obj_Personaje_De_Marco);

error (Wrong number of  arguments To funtion or  script)
me da ese error también inente con


Obj_Personaje_De_Marco.destroy();

y no funcionna  ayuda !!!

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado BssString

Respuesta #1 en: Agosto 07, 2018, 02:44:29 am
Hola Marcusmaniacus

Intenta con:
Código: [Seleccionar]
With Obj_Personaje_De_Marco instance_destroy()
Saludos

 
Los siguientes usuarios dieron las gracias a este tema: Marcusmaniacus


Desconectado Hezz

Respuesta #2 en: Agosto 07, 2018, 03:49:35 am
Hola Marcusmaniacus! Te doy un consejo: Fijate en la parte de abajo de la ventana del código, te dice lo que requiere la función para ser usada de forma correcta. Te dejo una imagen para que lo veas.
En este caso dice instance_destroy([id], [execute_event_flag]). Al estar en corchete quiere decir que lo que pongas dentro es opcional. Si la función la ponés vacía en un objeto, elimina sólo ese objeto de la room. Si queres usar esa función desde otro objeto, necesitas su id. Ésta puede ser obtenida desde un evento de colisión con otro objeto con la función "other". Por ejemplo: Se choca una bala contra una pared:
    instance_destroy();         //Destruye la bala
    instance_destroy(other); //Destruye la pared
La función other devuelve el valor de la ID del otro objeto con el que se colisiona.
Si ponés instance_destroy(Obj_Personaje_De_Marco), estarías quitando a todos esos objetos del nivel, ya que no hacés referencia a un sólo objeto, si no a todos los que hayan en el nivel (aunque esto no se puede hacer en game maker).

Otra forma es como dice BssString, pero con un pequeño cambio:
Si se usa with (Obj_Personaje_De_Marco) {instance_destroy();} sucede lo de eliminar a todos los Obj_Personaje_De_Marco del nivel, no solo a uno. Por lo tanto, se puede cambiar por la función other:
with (other) {instance_destroy();}

Recordá que lo que configurás en game maker, los objetos, son "padres", y al usarlos en el juego pasan a ser "hijos", que son copias de ese padre con las características que configuraste heredadas. Pero cada hijo tiene una variable "id" que devuelve su id como objeto, ya que no pueden haber 2 objetos con la misma id.
Para explicarlo de otra forma, si tenés un objeto padre "manzana", podés decir que es rojo, grande y comestible. Los hijos tendrán características distintas. Heredan las propiedades (rojo, grande y comestible en este caso), pero pueden modificarse, agregarse o quitarse algunas propiedades. Por ejemplo, uno de los hijos puede ser rojo, mediano, comestible y mordida, y otro puede ser rojo, grande, no comestible y podrida. Por lo tanto, al configurar esto tenés que ver si querés eliminar a todos los objetos o sólo a uno.

Otra cosa, lo de Obj_Personaje_De_Marco.destroy() no es posible. Eso sólo funciona con variables, no con funciones.

Creo que me extendí mucho  XD

Espero que te sirva!   :D

 
Los siguientes usuarios dieron las gracias a este tema: Luis En