Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Darkrabis en Abril 25, 2017, 12:04:21 AM

Título: Problemas con cambio de personajes[Resuelto]
Publicado por: Darkrabis en Abril 25, 2017, 12:04:21 AM
Ya había colocado este tema antes de la caída de la pagina, pero hasta los momentos aun no consigo buenos resultados al respecto. En primer lugar, quiero hacer un obj en la room, que al darle click, mi obj-player, aquel que utiliza el jugador cambie a otro personaje (3 por ahora), siendo uno de ellos y el primero en la room el padre obj, otro personaje que solo ataque a melee y otro que solo ataque con proyectiles. El problema es que cuando hago click en él obj, crea otro obj-padre en vez de cambiar el de la habitación o no hace nada (trate con diferentes códigos, como fue por ejemplo el instance-change). De igual manera estoy usando una variable global para Diferenciar los tres personajes pero no logro que funcione bien.


Título: Re:Problemas con cambio de personajes
Publicado por: 3dgeminis en Abril 25, 2017, 03:48:52 PM
LO que haria es en cada objeto personaje al presionar sobre el boton comprobar en el personaje si el valor de la variable global pertenece al mismo, si no pertenece cambiar de personaje.
Por ejemplo la variable tiene 3 valores 1, 2 y 3. El valor 1 es el personaje padre, 2 el personaje a melee y 3 el personaje de los misiles.
Como ejemplo tomemos al personaje padre, colocas un evento Global mouse left pressed y comprobas el valor de la variable, si es 1 no hace nada, pero si es 2 por ejemplo, eliminas al personaje y creas al personae a melee, si es 3 al de los misiles.
Y eso para cada personaje.
Título: Re:Problemas con cambio de personajes
Publicado por: Darkrabis en Abril 25, 2017, 04:44:32 PM
Pero como podria decirle al objeto que clickeo que le mande la información a los objetos jugadores? (el obj de cambio es diferente al obj de los jugadores) ya que entiendo que usaria el comando de instance_change, pero si lo coloco no me hace el cambio para ninguno de los dos objetos.
Título: Re:Problemas con cambio de personajes
Publicado por: yokaiworld en Abril 25, 2017, 07:07:11 PM
esto esta medio cutre pero funciona
tenemos 4 objetos

object_control // el que controla los cambios
object_padre
object_melee
object_proyectiles

colocamos el object_control y el object_padre en el mismo room

en el evento create del object_control
objeto=0

en el evento Step del object_control
if objeto==0 and instance_exists (object_proyectiles)
{with object_proyectiles instance_change(object_padre,true)}

if objeto==1 and instance_exists (object_padre)
{with object_padre instance_change(object_melee,true)}

if objeto==2 and instance_exists (object_melee)
{with object_melee instance_change(object_proyectiles,true)}

if objeto<=0
{objeto=0 }

if objeto >2
{objeto=0 }

if keyboard_check_released(vk_up) //este es boton virtual que se presiona para que cambie el objeto
{objeto+=1}


abjunto ejemplo


Título: Re:Problemas con cambio de personajes
Publicado por: Darkrabis en Abril 25, 2017, 10:53:29 PM
Este codigo lo veo mas util para el cambio de los que estaba usando antes, pero al momento de adaptarlo a mi proyecto apenas abro el juego me da este error

############################################################################################
FATAL ERROR in
action number 1
of  Step Event0
for object obj_ObjetoCon:

Unable to find any instance for object index '24' name 'obj_player'
at gml_Object_obj_ObjetoCon_StepNormalEvent_1 (line 3) - intHealthNow  = round((obj_player.intHealth * intGauge01) / obj_player.intHealthMax);
############################################################################################


Ese ObjetoCon es uno totalmente diferente al que me sugeriste, es un obj que ya tenia el cual usa para cosas del jeugo como la pausa, la barra de vida, etc. No se por que presenta inconvenientes con mi obj de cambio.
Título: Re:Problemas con cambio de personajes
Publicado por: yokaiworld en Abril 26, 2017, 12:22:51 AM
creo lo que pasa es que al cambiar el objeto por otro objeto es como si desapareciera, y todos los eventos que dependen de dicho objeto van ha dar error por que dicho objeto no existe. en este caso la barra de vida que depende de obj_player
Título: Re:Problemas con cambio de personajes
Publicado por: Darkrabis en Abril 27, 2017, 04:31:45 AM
Y como podría solucionar un problema como ese? porque hice que los obj sean descendientes del obj padre (se me habia olvidado marcar eso) pero ahora me da este error.


___________________________________________
############################################################################################
FATAL ERROR in
action number 1
of  Step Event0
for object obj_player:

local variable keyLeft(100001, -2147483648) not set before reading it.
at gml_Object_obj_player_StepNormalEvent_1 (line 32) -     intMove = keyLeft + keyRight * global.bolPause;
############################################################################################


lo que no entiendo es por que ahora no me lee la variable si ya le tengo declarada, pero con cambiar la descendencia ahora no lo lee.

pd: no se por que surgen problemas asi, pero me pasa uno parecido con ventanas de dialogo que esta se crea bien y pasa los dialogos y todo pero se crea detrás de las instancias, pero al cambiar la profundidad para que se cree delante ya no me lee una variable dentro de una formula tambien.
Título: Re:Problemas con cambio de personajes
Publicado por: yokaiworld en Abril 28, 2017, 05:55:00 PM
hola es un poco dificil decirte que falla de esta manera, Para mayor facilidad en lugar de cambiar tu objeto , por que no lo haces invisible cuando creas tu otros objetos

if instance_exist (object_melee) or instance_exist (object_proyectiles)
visible=0
else
visible=1

y en el step de object_melee y object_proyectiles
x=obj_player.x
y= obj_player.y

para que se muevan cuando obj_player se mueva

es solo una sujerencia realmente no se como esta hecho tu juego
Título: Re:Problemas con cambio de personajes
Publicado por: Darkrabis en Mayo 01, 2017, 03:48:00 AM
La verdad no se si sirva mucho porque se estarían ejecutando siempre los objetos no? entiendo que consumiría mas recursos o que podría darme problemas con las colisiones. Serviría si subo el archivo gmz del proyecto?
Título: Re:Problemas con cambio de personajes
Publicado por: yokaiworld en Mayo 02, 2017, 05:28:12 PM
pues si quieres subelo para hecharle un vistazo
Título: Re:Problemas con cambio de personajes
Publicado por: Darkrabis en Mayo 06, 2017, 04:45:43 PM
Este es el archivo que tengo hasta ahora
Título: Re:Problemas con cambio de personajes
Publicado por: yokaiworld en Mayo 08, 2017, 05:59:10 PM
revisando tu proyecto, no seria mas facil simplemente cambiar en lugar del objeto cambiar los sprites. Te dejo ejemplo. y en el mismo objeto mediante la variable

if global.Player = 0
if global.Player = 1
if global.Player = 2

crear los diferentes poderes para cada personaje

los sprites se cambian con "W"
Título: Re:Problemas con cambio de personajes
Publicado por: Darkrabis en Mayo 08, 2017, 10:49:34 PM
se que es mas facil solo cambiar el sprite, pero tengo planeado hacer personajes muy distintos los unos a los otros y no me sirve mucho que tenga el mismo codigo. Por ahora los que tengo para cambiar son el normal que solo atacara con ataques a distancia y la otra que solo ataca con ataques a distancia mas no pega a melee, por eso cambiar solo el sprite no me sirve (me parece a mi)
Título: Re:Problemas con cambio de personajes
Publicado por: Darkrabis en Mayo 10, 2017, 04:24:10 PM
Tambien otra cosa con solo cambiar los sprites seria, como hacer para que diferencie personaje que pude tomar que arma y cual no, ya que hay armas que solo quiero que agarre uno y ciertas armas que agarre otro, eso con solo cambio de sprites como se haría?
Título: Re:Problemas con cambio de personajes[Resuelto]
Publicado por: Darkrabis en Mayo 12, 2017, 04:10:06 AM
Ya no importa, logre hacer el  cambio con los objetos, era algo simple que no habia visto hasta ahora. Gracias a los que se tomaron su tiempo para responder, me ayudaron bastante :).