Enero 15, 2018, 10:47:36 PM Ultima modificación: Enero 17, 2018, 04:46:58 AM por Fa ._.
Cuando un soldado coliciona con un enemigo el enemigo pierde algo de vida y una variable se pone en 0 y en 1 segundo vuelve a recargarse y el enemigo toma daño de nuevo , pero cuando varios soldados atacan a la ves al mismo enemigo este solo toma el daño de 1 , no tengo cabeza para solucionarlo , me ayudan ?

suena como si cuando varios soldados estan colicionando con el enemigo esta seteando la variable a 0 siempre, funciona con 1 soldado, pero cuando tienes muchos las colisiones con los otros estan cambiando las variables de control que usas, asumiendo que solo se toma dano cuando el valor de la variable es 1.
Es Mejor No Saber Porque Funciona, Que Saber El Porque No Funciona...
Tienes alguna duda con "Game Design" o de videojuegos en general, contactamente mas facil en twitter @pavulzavala

Si , algo asi , el enemigo si toma el daño solo que el daño de 1 soldado y no el de los otros , cuando el enemigo toma el daño la variable se pone a 0 y en un segundo vuelve a 30 y vuelve a tomar el daño , pero solo toma el daño de 1 soldado y no el de los demas

voy a checar el GMK, luego te digo porque sucede  :-\
Es Mejor No Saber Porque Funciona, Que Saber El Porque No Funciona...
Tienes alguna duda con "Game Design" o de videojuegos en general, contactamente mas facil en twitter @pavulzavala


#5 Enero 16, 2018, 04:32:12 AM Ultima modificación: Enero 16, 2018, 04:48:41 AM por yokaiworld
los enemigos iguales los creas tu o tienes algun objeto que los crea automaticamente?

si los creas tu, da click derecho sobre el objeto, te aparcera un menu, busca la opcion creation code ahi
pon algo como nombre=1 en el siguiente objeto ( que es el mismo pero en difernte ubicacion) pon nombre =2. y asi sucesivamente

ahora utiliza esta variable (en step no creation code)

if soldado.nombre==1 and ataque1==0
hp-=5
ataque1=1
alarm1=30

if soldado.nombre==2 and ataque2==0
hp-=5
ataque2=1
alarm2=30

en alarm1
ataque1=0

en alarm2
ataque2=0

creo que vas a tener que crear una variable ataque para cada enemigo

no se cual sea tu codigo es solo un ejemplo
tal vez alguien con mas conocimiento te pueda ayudar

Cita de: yokaiworld en Enero 16, 2018, 04:32:12 AM
los enemigos iguales los creas tu o tienes algun objeto que los crea automaticamente?

si los creas tu, da click derecho sobre el objeto, te aparcera un menu, busca la opcion creation code ahi
pon algo como nombre=1 en el siguiente objeto ( que es el mismo pero en difernte ubicacion) pon nombre =2. y asi sucesivamente

ahora utiliza esta variable (en step no creation code)

if soldado.nombre==1 and ataque1==0
hp-=5
ataque1=1
alarm1=30

if soldado.nombre==2 and ataque2==0
hp-=5
ataque2=1
alarm2=30

en alarm1
ataque1=0

en alarm2
ataque2=0

creo que vas a tener que crear una variable ataque para cada enemigo

no se cual sea tu codigo es solo un ejemplo
tal vez alguien con mas conocimiento te pueda ayudar

No , los soldados los crea otro objeto al hacer click , es lo mismo ?

mira este tutorial tal vez te sirva, apartir de la segunda parte hay informacion muy util, pero te recomiendo que lo veas todo

https://youtu.be/clyteCzNICI

No podrias hacer a la inversa y que sean los soldados los que tengan esa variable ?

Y como haria para que el enemigo tome el daño a partir de ahi ?

Lo que estas buscando es hacer invencibilidad, como en los juegos de Megaman, supongo yo.
AL principio la variable esta en 0.
Cuando el enemigo lo golpea hay que asegurarse primero si la variable esta en 0, si lo esta, quita vida ademas de que activa el contador (una alarma), y pone la variable en 1.
En la alarma volvemos a poner la variable en 0, para que se pueda recibir daño de nuevo.
Si quieres te puedo poner el codigo.

#11 Enero 17, 2018, 02:37:57 AM Ultima modificación: Enero 17, 2018, 02:39:40 AM por yokaiworld
Cita de: 3dgeminis en Enero 17, 2018, 01:55:12 AM
Lo que estas buscando es hacer invencibilidad, como en los juegos de Megaman, supongo yo.
AL principio la variable esta en 0.
Cuando el enemigo lo golpea hay que asegurarse primero si la variable esta en 0, si lo esta, quita vida ademas de que activa el contador (una alarma), y pone la variable en 1.
En la alarma volvemos a poner la variable en 0, para que se pueda recibir daño de nuevo.
Si quieres te puedo poner el codigo.

No creo, el tiene un enemigo y una variable ataque, tiene un objeto que crea varias veces el mismo enemigo. pero cuando varios de estos enemigos atacan al objeto player la variable ataque (que es la misma en todos) se traba y deja de funcionar. Clickeando sobre un objeto en creation code se pueden diferenciar el mismo enemigo repetido varias veces pero como el los crea por codigo tristemente no se como se hace

Algiuen nos puede decir como diferenciar facilmente el mismo enemigo que se repite en un room?

Jaja , ya logre solucionar esto , poniendo la variable "ataque" en cada soldado y el enemigo al colisionar usa
if other.ataque > 29
{
vida = vida - 75
}

Luego en la colision del soldado con el enemigo

if ataque > 29
{
ataque = 0
}

Para que cuando llegue a 30 este se reestablesca y el enemigo solo tome el daño 1 vez

Y en el step del soldado

if ataque < 31
{
ataque = ataque + 1
}

Y asi en 1 segundo el enemigo vuelve a tomar el daño :D