Febrero 25, 2022, 02:43:08 AM Ultima modificación: Febrero 28, 2022, 02:03:01 AM por Jeffrey Faper
el jugador no se queda encima de la plataforma, funciona bien con plataformas solidas
ya lo solucione me faltaba esto vspd>0 en el codigo de colisiones , ya funciona correctamente con ambos tipos de plataformas pero me surgio otra duda como hago para controlar velocidades  de plataforma menores a 1 como 0.5;

PLATAFORMAS MOVILES :
EDITABLE SI ENCUENTRA BUGS AVISE :
https://drive.google.com/file/d/1zF4Se-PHWXp8nTsLLBUh6S3TYtZhxEFq/view?usp=sharing
[spoiler]
[gml]
//creditos para youtuber Art Games and Tech
//EVENT CREATE
platformType = 0;
initx = x;
inity = y;
hspd = 0;
vspd = 0;
radius = 60;
platDir = 1;
platAng = irandom(360);

//EVENT END STEP
switch(platformType){

//HORIZONTAL PLATFORM
case 0:
var platormSpeed = 0.5;
if(platAng mod(360)==0){
    platAng =-platAng;
    }
    platAng += platormSpeed*platDir;
    hspd = initx+lengthdir_x(radius,platAng)-x;
   
    with(parPlayers){
        if(!place_meeting(x,y,other) && place_meeting(x,y+1,other)){
            if(!place_meeting(x+other.hspd,y,parSolid)){
                x += other.hspd;
                }
            }
    }
    x += hspd;   
break;

//VERTICAL PLATFORM
case 1:
var platormSpeed = 0.5;
if(platAng mod(360)==0){
    platAng =-platAng;
    }
    platAng += platormSpeed*platDir;
    vspd = ceil(inity+lengthdir_y(radius,platAng)-y);
   
    with(parPlayers){
        if(!place_meeting(x,y,other) && place_meeting(x,y+abs(other.vspd),other)){
            if(!place_meeting(x,y+other.vspd,parSolid)){
                y += other.vspd;
                }
            }
    }
    y += vspd;   
break;
   
//CIRCULAR PLATFORM
case 2:
var platormSpeed = 0.5;
if(platAng mod(360)==0){
    platAng =-platAng;
    }
    platAng += platormSpeed*platDir;
    hspd = initx+lengthdir_x(radius,platAng)-x;
    vspd = ceil(inity+lengthdir_y(radius,platAng)-y);
   
    with(parPlayers){
        if(!place_meeting(x,y,other) && place_meeting(x,y+1,other)){
            if(!place_meeting(x+other.hspd,y,parSolid)){
                x += other.hspd;
                }
            }
        if(!place_meeting(x,y,other) && place_meeting(x,y+abs(other.vspd),other)){
            if(!place_meeting(x,y+other.vspd,parSolid)){
                y += other.vspd;
                }
            }
    }
    x += hspd;
    y += vspd;   
break;
}
[/gml]
[/spoiler]