Hola compañeros no se hacer que mi robot se desplace a un punto y se detenga, cuando llega a la posición parpadea
tengo puesto es step : switch (posicion_robot) {
case 1:
direction = point_direction(x, y, 1400, 600 )
break
ya intento poner la velocidad a cero ademas tiene que cambiar de estado cuando el objeto llega a su posicion por ejemplo
[gml]
speed = mainspd; //VELOCIDAD DE MOVIMIENTO
switch(posicion_robot)
{
case "DESTINY1":
//CAMBIAR DE ESTADO SI LA POSICION DEL OBJETO ES >= mayor o igual o <= menor o igual QUE SU DESTINO
if(x>=1400 && y>=600) // >= o <= DEPENDIENDO SI SU OBJETO RECORRE LA PANTALLA DE ARRIBA HACIA ABAJO O VICEVERSA
// DE IZQUIERDA A DERECHA Y VICEVERSA
{
posicion_robot = "STANDBY";//cambio de estado
mainspd = 0;//velocidad de su objeto
}
break;
case "STANDBY": //aciones mirar sus ojos bonitos , disparar , tomar un descanso etc etc
var timer = 0+current_time/6000; //TEMPORIZADOR
var target = point_direction(x,y,objeto.x,objeto.y) //MIRAR HACIA OBJETIVO
image_angle = target;
//DISPARAR
if(timer%3==0)
{
var bull = instance_create(x,y,bullet);
bull.mainspd = 20*dtime;
bull.direction = target;
}
//CAMBIAR DE ESTADO OTRA VEZ
if(timer>=5)
{
posicion_robot = "OTHER STATE"
}
break;
case "OTHER STATE": break;
}
[/gml]
Muchas gracias ,muy bien resuelto , me avía quedado estancado ;D
Al final lo he echo con : point_distance , cuando el robot se acerca al punto y esta a menos de 10 pixel la velocidad es 0
[gml]switch (posicion_robot) {
case 1:
direction = point_direction(x, y, 1400, 600 )//direcion a tomar
speed=velocida
if point_distance(x,y,1400,600) <10 { speed=0}//mide la distancia y si esta menos de 10 pixel velocidad es 0
if !alarm[1] { alarm[1]=60*3 }
break
case 2:
direction = point_direction(x, y, 1720, 205 )
speed=velocida
if point_distance(x,y,1820,205) <10 { speed=0 }
if !alarm[1] { alarm[1]=60*3 }
break;
case 3:
direction = point_direction(x, y, 1400, 1140 )
speed=velocida
if point_distance(x,y,1400,1140) <10 { speed=0 }
if !alarm[1] { alarm[1]=60*3 }
default:
break;
}[/gml]
Cita de: Ikaro3d en Diciembre 11, 2021, 04:14:27 PM
Muchas gracias ,muy bien resuelto , me avía quedado estancado ;D
De nada para eso estamos , yo tambien la lio con esas funciones del game maker sobre todo con move_towards_point
pero bueno ahora que esta usando una variable para controlar la velocidad de sus objetos cuando pause y despause su juego le resultara mas sencillo restablecerla
claro eso dependera de como maneje la pausa de su juego
[gml]
if(global.paused){
speed = 0;
}
if(!global.paused){
speed = velocida;
}
[/gml]