Hola quiero hacer lo que esta en el titulo ya que quiero hacer mi plataformero y que tenga un bloque que lo impulse hacia un lado, asi serviria para llegar a diferentes lugares o que si toca ese bloque lo mande hacia las trampas, etc...

CREATE de mi plataformero
vsp = 0;
hsp = 0;
movespeed = 7;
jumpspeed = 12;
impspeed = 15;
grav = 0.5


STEP de mi plataformero
///Player Input.
var key_right = keyboard_check(vk_right);
var key_left = keyboard_check(vk_left);
var key_jump = keyboard_check(vk_up);
/////////////////////////////////////////
if(place_meeting(x,y+1,obj_solid))
{
    vsp = 0;
    if(key_jump)
    {
        vsp = -jumpspeed;
    }
}
else
{
    if(vsp < 10)
    {
        vsp += grav;
    }
}

if(key_right)
{
    hsp = movespeed;
}
if(key_left)
{
    hsp = -movespeed;
}

if(!key_right && !key_left || key_right && key_left)
{
    hsp = 0;
}

if(place_meeting(x+hsp,y,obj_solid))
{
    while(!place_meeting(x+sign(hsp),y,obj_solid))
    {
        x += sign(hsp);
    }
    hsp = 0;
}
x += hsp;
if(place_meeting(x,y+vsp,obj_solid))
{
    while(!place_meeting(x,y+sign(vsp),obj_solid))
    {
        y += sign(vsp);
    }
    vsp = 0;
}
y += vsp;


intente con

if(place_meeting(x,y,obj_burst_right)){
   hsp = impspeed;
}

Cita de: vitail en Marzo 07, 2015, 02:32:37 AM
Hola quiero hacer lo que esta en el titulo ya que quiero hacer mi plataformero y que tenga un bloque que lo impulse hacia un lado, asi serviria para llegar a diferentes lugares o que si toca ese bloque lo mande hacia las trampas, etc...

CREATE de mi plataformero
vsp = 0;
hsp = 0;
movespeed = 7;
jumpspeed = 12;
impspeed = 15;
grav = 0.5


STEP de mi plataformero
///Player Input.
var key_right = keyboard_check(vk_right);
var key_left = keyboard_check(vk_left);
var key_jump = keyboard_check(vk_up);
/////////////////////////////////////////
if(place_meeting(x,y+1,obj_solid))
{
    vsp = 0;
    if(key_jump)
    {
        vsp = -jumpspeed;
    }
}
else
{
    if(vsp < 10)
    {
        vsp += grav;
    }
}

if(key_right)
{
    hsp = movespeed;
}
if(key_left)
{
    hsp = -movespeed;
}

if(!key_right && !key_left || key_right && key_left)
{
    hsp = 0;
}

if(place_meeting(x+hsp,y,obj_solid))
{
    while(!place_meeting(x+sign(hsp),y,obj_solid))
    {
        x += sign(hsp);
    }
    hsp = 0;
}
x += hsp;
if(place_meeting(x,y+vsp,obj_solid))
{
    while(!place_meeting(x,y+sign(vsp),obj_solid))
    {
        y += sign(vsp);
    }
    vsp = 0;
}
y += vsp;


intente con

if(place_meeting(x,y,obj_burst_right)){
   hsp = impspeed; // el burst de arriba y abajo son faciles pero no encuentro la forma de hacerlo con este
}