Abril 05, 2021, 11:23:38 PM Ultima modificación: Abril 06, 2021, 12:38:00 AM por juantrix666
Buenas, estoy teniendo un problema con un script que hice para mover objetos como el move_toward pero para que funcione en un sistemita de cutscenes,  que es basicamente un array de scripts con sus parametros(que serian las acciones de la escena), y el obj_cutscene lo va recorriendo cuando se crea, ahora el problema es el siguiente script:
[gml]///cutscene_move_object(xx, yy, obj, sp)
var obj = argument2 //objeto a mover
var xx = argument0  //cordenada x del punta a mover
var yy = argument1  //cordenada y del punta a mover
var sp = argument3  //velocidad del movimiento


with(obj){

    if (point_distance(x,y,xx,yy) >= sp){
        direction = point_direction(x,y,xx,yy)
        speed = sp
    }else{
        speed = 0
        x=xx
        y=yy
        with(other){
   
            cutscene_end_action() 
       
        }
    }
   
}[/gml]

Uso este sript para que lo siguiente funcione:
[gml]///@description array(arguments);

var arr;

for (var i=0;i<argument_count;i+=1)

{

    arr = argument;

}

return arr;[/gml]

Este script se tendria que ejecutal al final de este array:
[gml]scene_info = array(
    array(cutscene_wait,5),
    array(cutscene_play_sound,sound_shoot),
    array(cutscene_wait,3),
    array(cutscene_play_sound,sound_shoot),
    array(cutscene_move_object,obj_box,player.x-50,player.y,5),
)[/gml]

Hace todo hasta que llega al script que digo y no hace nada, ya probe cambiando el objeto a mover, agregando otros scripts para que no sea el ultimo en el array pero es lo mismo, se queda ahi y no hace mas nada. Si me ayudan con esto me ahorran un dolor de cabeza.Gracias.
"haz lo que te haga feliz pero tendras que afrontar las consecuencias"

Nose que es lo que pueda estar causando ese problema pero intenta cambiando el primer script por este
[gml]
///cutscene_move_object(xx, yy, obj, sp)
var obj = argument2 //objeto a mover
var xx = argument0  //cordenada x del punta a mover
var yy = argument1  //cordenada y del punta a mover
var sp = argument3  //velocidad del movimiento


with(obj){
  repeat(sp) {
    if (point_distance(x, y, xx, yy) < sp) break;
    x += lengthdir_x(1, point_direction(x, y, xx, yy));
    y += lengthdir_y(1, point_direction(x, y, xx, yy));
  }
}
[/gml]

Anda perfecto, no se porque, pero me sirve  XD, Muchas gracias.
"haz lo que te haga feliz pero tendras que afrontar las consecuencias"