aclarar que en el codigo del ENEMIGO persigue al "enemigo"(que viene siendo el personaje dentro de su codigo) esto lo hice asi para que el enemigo persiguiera al personaje mas cercano a el
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
2
Preguntas y respuestas / Error visual con distance_to_object
Diciembre 29, 2018, 05:12:07 PM
Buenas alguien podria orientarme? sucede que el enemigo cuando llega a la posicion del jugador se queda dando vueltas de izquierda a derecha y se ve re mal aqui dejo el codigo para poder corregirlo
[gml]if distance_to_object(enemigo) < 400 and enemigo.image_alpha = 1
{
if enemigo.x+5 < x
{
sprite_index = spr_enemigo_craneo_camin_izq
x -= 2.5
image_speed = 0.16
}
else
{
sprite_index = spr_enemigo_craneo_camin_der
x += 2.5
image_speed = 0.16
}
}[/gml]
[gml]if distance_to_object(enemigo) < 400 and enemigo.image_alpha = 1
{
if enemigo.x+5 < x
{
sprite_index = spr_enemigo_craneo_camin_izq
x -= 2.5
image_speed = 0.16
}
else
{
sprite_index = spr_enemigo_craneo_camin_der
x += 2.5
image_speed = 0.16
}
}[/gml]
3
Preguntas y respuestas / Re:bala multi objetivos que sigue a enemigos
Diciembre 28, 2018, 02:57:21 AM
iba a crear un nuevo post sin ver esto, gracias lo arregle a mi modo, en mi caso queria que el enemigo persiguiera al jugador mas cercano y gracias a ti lo logre... :D :D
Cita de: Jucarave en Diciembre 23, 2018, 06:41:29 AM
Puedes obtener la instancia mas cerca utilizando la funcion instance_nearest(x, y, obj) luego le asignas esa instancia a la bala que creas para que esta solo siga a ese enemigo:
Esto lo pondrías cuando crees la bala:
[gml]
//Primero obtenemos la posición del enemigo mas cercano
var enemigo = instance_nearest(x, y, objEnemigo);
//Ahora creamos la bala
var bala = instance_create(x, y, objBala);
//Le decimos a la bala a que enemigo debe seguir
bala.enemigoObjetivo = enemigo;
[/gml]
Ahora en el objeto de la bala, en el evento step, depende de como tengas el sistema de movimiento esto puede cambiar. Yo lo voy a mover utilizando un método facil
[gml]
//Necesitas una velocidad para la bala
var velocidad = 3;
//Obtenemos la dirección hacia el enemigo
direction = point_direction(x, y, enemigoObjetivo.x, enemigoObjetivo.y);
//Ahora movemos la bala en esa direccion con una velocidad
x += lengthdir_x(velocidad, direction);
y += lengthdir_y(velocidad, direction);
[/gml]
Esto debería funcionar, al menos de forma básica, ya a partir de esto puedes adaptarlo a tus necesidades.
Saludos
4
Preguntas y respuestas / Re:Sistema de inventario
Enero 25, 2018, 06:35:44 PM
Algo que podrías hacer es crear un objeto cofre que guarde la información de tus variables/globales. luego escribir las cantidades o dibujar sus Sprite.
pero si buscas algo más avanzado no puedo ayudarte u.u aunque te recomiendo ver los tutoriales en YouTube.
pero si buscas algo más avanzado no puedo ayudarte u.u aunque te recomiendo ver los tutoriales en YouTube.
5
Preguntas y respuestas / Re:Objeto que va a la posición del personaje.
Enero 25, 2018, 06:31:15 PMCita de: Clamud en Enero 25, 2018, 03:57:35 AM
En el evento Create declara una variable de estado, las variables de posición final e inicia una alarma
[gml]
/// Iniciar
estado = 0;
// estado 0: espera
// estado 1: en movimiento
// Posicion final
xfinal = 0;
yfinal = 0;
alarm[0] = segundos * room_speed;
// la posicion final se actualiza en la alarma
[/gml]
En el evento Alarm 0 actualiza la posición final y cambia al estado de movimiento
[gml]
/// Actualizar posicion final
xfinal = obPersonaje.x;
yfinal = obPersonaje.y;
estado = 1; //iniciar movimiento
[/gml]
En el evento Step realiza el desplazamiento
[gml]
/// Movimiento
if (estado == 1)
{
//avanzar en linea recta hasta alcanzar la posicion final
if mp_linear_step(xfinal, yfinal, velocidad, false)
{
//cuando llega a la posicion final
estado = 0; //cambiar a estado de espera
alarm[0] = segundos * room_speed; //durante unos segundos
}
}
[/gml]
Muchas gracias compañero =D
6
Preguntas y respuestas / Objeto que va a la posición del personaje.
Enero 25, 2018, 01:47:55 AM
Cómo podría hacer que un objeto a cierta distancia vaya a la posición del personaje y aun si el personaje se moviera este objeto iría la posición que seleccionó desde el principio y llegado a la posicion se detenga.
Y segundos después detecte la posición del personaje otra vez.
Y segundos después detecte la posición del personaje otra vez.
7
Preguntas y respuestas / Re:Objetos o tiles
Enero 19, 2018, 09:54:02 PM
Yo creo que seria mejor usar tiles para dar a tu juego un buen diseño. Y sobre paredes. Solo pones el objeto pared invisible
8
Preguntas y respuestas / Re:Problema con variables globales en el sistema de defensa(Aún sin resolver)
Enero 17, 2018, 05:49:07 AM
Al final lo que hice fue dividir la global.Vida -=3/global.Defensa
si bien esto me saldría decimales :v en el objeto donde dibuja la vida en el draw_texto al final agregue (floor(global.Vida))) así la vida no saldría en decimal :D no logre que bajará sólo 1 de vida pero al menos ya no le suma. espero mi solución le pueda servir a alguien.
si bien esto me saldría decimales :v en el objeto donde dibuja la vida en el draw_texto al final agregue (floor(global.Vida))) así la vida no saldría en decimal :D no logre que bajará sólo 1 de vida pero al menos ya no le suma. espero mi solución le pueda servir a alguien.
9
Preguntas y respuestas / Re:Problema con variables globales en el sistema de defensa
Enero 15, 2018, 08:24:08 PMCita de: Goganpis en Enero 15, 2018, 06:06:20 PMVeras probé el código. cree la variable global.ataque = -3 ya que esta variable no la tenia, lo que si hacia el enemigo era bajar la global.Vida =-3 al jugador porque jugaba con esa variable. Así mira
Para eso solo coloca la condicional "if" y "else" de esta formaCódigo [Seleccionar]
global.ataque(es la variable de daño cambialo como lo tienes en el daño)
if global.ataque - global.defensa >= 0 then global.vida -= global.ataque - global.defensa
with (obj_jugador)
{
global.Vida =-3 + global.defensa // la defensa es =-2 por lo que la vida real a quitar es -1 en este código No había incluido el daño. Ahora si lo pusiese no sabría como hacer que reaccione con la vida :'v
puse al pie de la letra y nada. :c
10
Preguntas y respuestas / Problema con variables globales en el sistema de defensa "resuelto"
Enero 15, 2018, 05:03:57 PM
Bueno verán, tengo una variable llamada global.Vida = 20 que es la del personaje. Y los enemigos cuando colisionan con el jugador la variable es global.Vida -= 3
Ahora creando la variable global.defensa = -2 y en la colisión la pongo así. Si el enemigo toca al jugador global.Vida -= 3 + global.defensa por lo que el daño vendría siendo -1 en vez del -3 que es el daño inicial
mi problema es el siguiente. Como puedo hacer para que cuando la variable global.defensa sea mas grande que el daño hecho por el enemigo... Sea así. global.Vida = -3 + global.defensa (que valdría -4)
es que en vez que le baje vida le sube la vida en 1. aun si tengo una global.vidamax
lo que quiero lograr es que si en caso la defensa sea mayor alos daño que hace el enemigo entonces que solo le haga 1 de daño.
estoy sería muy útil para mi así pondría habitaciones donde el jugador no pueda entrar si no tiene la defensa adecuada.
Pero ese es mi problema. :( :( No puedo hacer que deje de sumar vida en vez de bajarla si la defensa es mayor al daño del enemigo y si en caso es mayor entonces solo le baje 1 de vida :'v ayuda por favor
Ahora creando la variable global.defensa = -2 y en la colisión la pongo así. Si el enemigo toca al jugador global.Vida -= 3 + global.defensa por lo que el daño vendría siendo -1 en vez del -3 que es el daño inicial
mi problema es el siguiente. Como puedo hacer para que cuando la variable global.defensa sea mas grande que el daño hecho por el enemigo... Sea así. global.Vida = -3 + global.defensa (que valdría -4)
es que en vez que le baje vida le sube la vida en 1. aun si tengo una global.vidamax
lo que quiero lograr es que si en caso la defensa sea mayor alos daño que hace el enemigo entonces que solo le haga 1 de daño.
estoy sería muy útil para mi así pondría habitaciones donde el jugador no pueda entrar si no tiene la defensa adecuada.
Pero ese es mi problema. :( :( No puedo hacer que deje de sumar vida en vez de bajarla si la defensa es mayor al daño del enemigo y si en caso es mayor entonces solo le baje 1 de vida :'v ayuda por favor