Bueno Primero que nada gracias por entrar y leer esto
Ire directo al grano :)
Estoy creando un juego de mario y pues el movimiento es muy seco me explico en los juegos de mario se puede notar una aceleracion cuando se preciona la tecla de avanzar y buen pues quiero saber como hacer un tipo de aceleracion en game maker y cuando se deje de presionar la velocidad de la que estaba vaya bajando a 0 basicamente cuando se presiona la tecla aceleracion y cuando la deje de presionar friccion osea basicamente un smooth movement conosco la variable lerp y friction pero no se como implementarlas en mi codigo bueno aca se los dejo
//Evento Create
//Variables
VelocidadP=3
VelocidadN=-3
Run=false
Stand=0
//Evento Step
//Sprites
if sprite_index=spr_MK_S_Stand_R {image_speed=0.4}
if sprite_index=spr_MK_S_Stand_L {image_speed=0.4}
if sprite_index=spr_MK_S_Walk_R {image_speed=0.4}
if sprite_index=spr_MK_S_Walk_L {image_speed=0.4}
if sprite_index=spr_MK_S_Walk_R && Run=true {image_speed=0.5}
if sprite_index=spr_MK_S_Walk_L && Run=true {image_speed=0.5}
//Variables de Velocidad
if keyboard_check_pressed(ord("X"))
{Run=true}
if keyboard_check_released(ord("X"))
{Run=false}
if Run=true
{VelocidadP=5}
if Run=true
{VelocidadN=-5}
if Run=false
{VelocidadP=3}
if Run=false
{VelocidadN=-3}
//Movimiento
if sprite_index=spr_MK_S_Stand_R
{hspeed=Stand}
if sprite_index=spr_MK_S_Stand_L
{hspeed=Stand}
if sprite_index=spr_MK_S_Stand_R && keyboard_check_pressed(vk_left)
{hspeed=VelocidadN; sprite_index=spr_MK_S_Walk_L}
if sprite_index=spr_MK_S_Stand_R && keyboard_check_pressed(vk_right)
{hspeed=VelocidadP; sprite_index=spr_MK_S_Walk_R}
if sprite_index=spr_MK_S_Stand_L && keyboard_check_pressed(vk_left)
{hspeed=VelocidadN; sprite_index=spr_MK_S_Walk_L}
if sprite_index=spr_MK_S_Stand_L && keyboard_check_pressed(vk_right)
{hspeed=VelocidadP; sprite_index=spr_MK_S_Walk_R}
if sprite_index=spr_MK_S_Walk_R && keyboard_check_pressed(ord("X"))
{hspeed=VelocidadP}
if sprite_index=spr_MK_S_Walk_L && keyboard_check_pressed(ord("X"))
{hspeed=VelocidadN}
if sprite_index=spr_MK_S_Walk_R && keyboard_check_released(ord("X"))
{hspeed=VelocidadP}
if sprite_index=spr_MK_S_Walk_L && keyboard_check_released(ord("X"))
{hspeed=VelocidadN}
if keyboard_check_released(vk_left) && sprite_index=spr_MK_S_Walk_L
{hspeed=0; sprite_index=spr_MK_S_Stand_L}
if keyboard_check_released(vk_right) && sprite_index=spr_MK_S_Walk_R
{hspeed=0; sprite_index=spr_MK_S_Stand_R}
a ver si me pueden ayudar gracias
Asi lo haria sin hspeed:
[gml]
///CREATE
vel=0
vel_max=4
acel=0.2
///STEP
if keyboard_check(vk_right) {if vel<vel_max {vel+=acel}}
if keyboard_check(vk_left) {if vel>-vel_max {vel-=acel}}
if (!keyboard_check(vk_right) and !keyboard_check(vk_left))
{
if vel>0 {vel-=acel}
if vel<0 {vel+=acel}
}
x+=vel
[/gml]