Junio 18, 2013, 10:03:06 pm

Autor Tema: Hacer que un objeto se destruya, inutilización temporánea,etc. (Solucionado)  (Leído 421 veces)

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

Desconectado Marron121

  • Asiduo
  • *
  • Puntos: 94
  • Mensajes: 174
  • Sexo: Masculino
    • Ver Perfil
Mientras estaba desarollando un prototipo de los ataques en el juego de lucha que THE LAST PLAYERS estamos planeando,me ha salido un duda :-[...
Como puedo hacer que un objeto,después de crearlo,desaparezca a los X segundos?
Y otra,los steps son segundos?

Como puedo hacer que, despúes de hacer un ataque,necesite,por ejemplo, 10 segundos antes de hacer otro?

JURO QUE ES MI ÚLTIMA PREGUNTA

Gracias de antemano :)!
« última modificación: Mayo 10, 2012, 08:15:26 pm por Marron121 »
Creador de MoreThan121Games :D Aficionado del GM, LOL y youtuber medio ;)
No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.

Desconectado Silver_light

  • Adicto
  • *
  • Puntos: 45
  • Mensajes: 367
  • Luz Plateada!
    • Ver Perfil
Re:Hacer que un objeto se destruya
« Respuesta #1 en: Mayo 10, 2012, 03:31:07 pm »
30 Steps son un segundo, aproximadamente.
Entonces si quieres que se destruya en 5 segundos, puedes colocar una alarma en el evento create:
alarm[0] = 30*5;
luego en la alarma, colocas las acciones. En este caso que se destruya...
¡Cierto!, ¡En un cien por ciento!

Tutorial 39DLL :3

Desconectado Marron121

  • Asiduo
  • *
  • Puntos: 94
  • Mensajes: 174
  • Sexo: Masculino
    • Ver Perfil
Re:Hacer que un objeto se destruya
« Respuesta #2 en: Mayo 10, 2012, 04:06:59 pm »
Muchisismasgracias Sliver_Light,pero ahora me ha surgido otra...
Como puedo hacer que, despúes de hacer un ataque,necesite,por ejemplo, 10 segundos antes de hacer otro?

JURO QUE ES MI ÚLTIMA PREGUNTA :-[

"quiero decir en el post ¬¬"
« última modificación: Mayo 10, 2012, 04:51:56 pm por Marron121 »
Creador de MoreThan121Games :D Aficionado del GM, LOL y youtuber medio ;)

Desconectado MaanuRP

  • Okupa
  • *
  • Puntos: 20
  • Mensajes: 887
  • Sexo: Masculino
  • MaanuRP! Game Maker 8!
    • Ver Perfil
Re:Hacer que un objeto se destruya
« Respuesta #3 en: Mayo 10, 2012, 04:45:47 pm »
Primero que nada, no tienes que jurar ni prometer nada, el foro esta para resolver dudas xD

1) Yo te recomiendo que siempre que quieras referirte a segundos hagas:
variable = room_speed * segundos
//"variable" es la variable a la que necesites darle ese valor de segundos, ya sea una variable normal o un alarm.
//room_speed es una constante que tiene los steps de tu juego, que por defecto son 30 (Pero para no estar poniendo 30, o por si no te gusta tener numeros).
//"segundos" ahi pon la cantidad de segundos que quieres.

2) Para que un objeto se destruya despues de 10 segundos (Por ejemplo), deberias hacer lo siguiente.
//Evento create:
alarm[0] = room_speed * 10
//Poner la alarma 0 en room_speed * 10 (Que es lo mismo que decir 10 segundos, como te explique antes).

//Evento alarm0: (Se activa despues de los 10 segundos, como le pusiste en el evento "Create").
instance_destroy()
//Destruir la instancia.

3) Lo que yo haria para hacer un limite de ataque ahora algo como:
//Evento Create:
Puedoatacar = 1

//Evento KeyPress Space (Por poner un boton cualquiera, elije el que tu quieras)
if Puedoatacar = 1
{
 //Funciones que uses para el ataque.
 Puedoatacar = 0
 alarm[0] = room_speed * 3
}

//Evento alarm[0]
Puedoatacar = 1
Lo que esto hara es:
En el evento create, crear la variable que verifica si el jugador puede atacar y la pone en "1", para dejarlo atacar.
En el evento de la tecla, o en el evento que hayas elegido para el ataque, verifica si la variable "Puedoatacar" esta en "1", si es asi, el personaje ataca, la variable se pone en "0" (Para prohibir que se ataque nuevamente) y activa la alarma y la pone en 3 segundos.
En el evento de la alarma, cuando pasan los 3 segundos que le asignamos antes, la variable "Puedoatacar" se vuelve a poner en 1, para que el jugador pueda atacar nuevamente.

Espero que te haya servido!

Saludos!

Desconectado Marron121

  • Asiduo
  • *
  • Puntos: 94
  • Mensajes: 174
  • Sexo: Masculino
    • Ver Perfil
Re:Hacer que un objeto se destruya
« Respuesta #4 en: Mayo 10, 2012, 04:50:33 pm »
Lo voy a probar,y edito  :)

DIOS MIO,SIGUE SIN FUNCIONARME,LA VERDAD :( ... no se podría hacer solo con variables y alarms?
Porque la verdad,a mi tambien me cuesta entenderlo :-[.
« última modificación: Mayo 10, 2012, 05:07:18 pm por Marron121 »
Creador de MoreThan121Games :D Aficionado del GM, LOL y youtuber medio ;)

Desconectado MaanuRP

  • Okupa
  • *
  • Puntos: 20
  • Mensajes: 887
  • Sexo: Masculino
  • MaanuRP! Game Maker 8!
    • Ver Perfil
Re:Hacer que un objeto se destruya
« Respuesta #5 en: Mayo 10, 2012, 05:14:34 pm »
Mira, te hice un ejemplo.

Vas a ver que copie y pegue todo. Solamente agregue un objeto que seria del ataque para que sea mas didactico.

Saludos!

PD: Y es solo una variable, una condicion y un alarm.

Desconectado Marron121

  • Asiduo
  • *
  • Puntos: 94
  • Mensajes: 174
  • Sexo: Masculino
    • Ver Perfil
Re:Hacer que un objeto se destruya
« Respuesta #6 en: Mayo 10, 2012, 05:58:30 pm »
Mira, te hice un ejemplo.

Vas a ver que copie y pegue todo. Solamente agregue un objeto que seria del ataque para que sea mas didactico.

Saludos!

PD: Y es solo una variable, una condicion y un alarm.

Siii,ya me va!!!!!! Feel like HACKER 8)

Una cosa,(con esa cosa me quedará todo perfecto) como puedo hacer para que este comando
Código: [Seleccionar]
instance_create(room_width/2,room_height/2,Ataque sea relativo al personaje?[/size]

POR CIERTO,MUCHAS GRACIAS POR AYUDARME :'( :'( :'( :'( :'( SOY TAAAAAAAAAAAAAN FELIZ
Creador de MoreThan121Games :D Aficionado del GM, LOL y youtuber medio ;)

Desconectado MaanuRP

  • Okupa
  • *
  • Puntos: 20
  • Mensajes: 887
  • Sexo: Masculino
  • MaanuRP! Game Maker 8!
    • Ver Perfil
Re:Hacer que un objeto se destruya, inutilización temporánea,etc.
« Respuesta #7 en: Mayo 10, 2012, 06:38:36 pm »
instance_create(Jugador.x,Jugador.y,Ataque)
//Cambia "Jugador" por el nombre del objeto del jugador.
//Es cuestion de ir probando con los argumentos de la funcion [instance_create(x,y,obj].

Saludos!

Desconectado Marron121

  • Asiduo
  • *
  • Puntos: 94
  • Mensajes: 174
  • Sexo: Masculino
    • Ver Perfil
Re:Hacer que un objeto se destruya, inutilización temporánea,etc.
« Respuesta #8 en: Mayo 10, 2012, 07:03:10 pm »
Siento tener que estar dando la lata tanto :-[,pero ahora me sale esto:
Código: [Seleccionar]
FATAL ERROR in
action number 1
of Key Press Event for A-key Key
for object Joan:

COMPILATION ERROR in code action
Error in code at line 3:
    instance_create(Joan,50,Joan,20,Ataque)
                                          ^
at position 41: Wrong number of arguments to function or script.

QUE HAGO?
Creador de MoreThan121Games :D Aficionado del GM, LOL y youtuber medio ;)

Desconectado MaanuRP

  • Okupa
  • *
  • Puntos: 20
  • Mensajes: 887
  • Sexo: Masculino
  • MaanuRP! Game Maker 8!
    • Ver Perfil
Re:Hacer que un objeto se destruya, inutilización temporánea,etc.
« Respuesta #9 en: Mayo 10, 2012, 07:17:31 pm »
Hace poco tiempo que estas con GML, cierto? jaja, felicitaciones por el cambio de D&D a GML ^^

Una funcion tiene distintos argumentos.
Por ejemplo la funcion instance_create tiene 3 argumentos: x,y,obj
Donde x es la "x" donde va a ser creada, y es la "y" donde va a ser creada y "obj" es el objeto a crear.

Cada uno de estos argumentos van entre parentesis despues de la funcion y separados por una coma:
instance_create(x,y,obj)

Por lo que para que se cree en el objeto del jugador (Dependiendo de donde hayas puesto la "x" y la "y" del sprite (Cuando lo creas) seria asi: Crear la instancia en la x del jugador, en la y del jugador, la instancia va a ser "Ataque".
Entonces: instance_create(Jugador.x,Jugador.y,Ataque)
Jugador.x se refiere a la variable "x" del objeto "Jugador".

Si queres que esto se cree a 50 pixeles a la derecha del jugador, deberias poner:
instance_create(Jugador.x+50,y,Ataque)
Entonces esto toma la "x" del "Jugador", le suma 50 pixeles y ahi lo va a crear.

Para hacer que se cree 50 pixeles mas arriba seria:
instance_create(Jugador.x,Jugador.y-50,Ataque)
(Recuerda que los 0 y 0 de la "x" e "y" se encuentran en la parte superior izquierda de la pantalla.)



Tu error estuvo en que hiciste:

instance_create(Joan,50,Joan,20,Ataque)

Por lo que a la funcion le diste 5 argumentos, cuando solo tiene que tener 3. Esos 50 y 20 no se como los quieres usar para afectar al "x" y al "y" del jugador. Pero si los quieres sumar, tendrias que usarlo asi:

instance_create(Joan.x+50,Joan.y+20,Ataque)



Espero haberte explicado bien, cualquier cosa me dices ^^

Desconectado Marron121

  • Asiduo
  • *
  • Puntos: 94
  • Mensajes: 174
  • Sexo: Masculino
    • Ver Perfil
Re:Hacer que un objeto se destruya, inutilización temporánea,etc.
« Respuesta #10 en: Mayo 10, 2012, 08:14:22 pm »
Siiiiiiiiiiiii!!!! Al fin, he conseguido que funcione XD XD XD XD XD XD XD XD!!!!! MUCHAS GRACIAS POR AYUDARME

Añado una cosa:
Los "puntos" x e y indican,en ese orden, derecha/izquierda, arriba/abajo
Para que me saliera donde quería,tuve que poner el punto y negativo (lo que indica ARRIBA).No varía mucho del original que me diste MaanuRP, ha quedado así:
Código: [Seleccionar]
instance_create(Joan.x+50,Joan.y-50,Ataquecurativo1)No se porque,me siento mas... PRO despúes de decir eso...XD
Creador de MoreThan121Games :D Aficionado del GM, LOL y youtuber medio ;)

Desconectado MaanuRP

  • Okupa
  • *
  • Puntos: 20
  • Mensajes: 887
  • Sexo: Masculino
  • MaanuRP! Game Maker 8!
    • Ver Perfil
Por eso te aclare que los ceros estan en la esquina superior izquierda. X aumenta para la derecha, Y aumenta para abajo.