Mostrar Mensajes

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.

Mensajes - AzTaki-De

1
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
2
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]
3
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.
5
Cita 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
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.
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
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.
9
Cita de: Goganpis en Enero 15, 2018, 06:06:20 PM
Para eso solo coloca la condicional "if" y "else" de esta forma



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

Veras 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
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
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