Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: XxBL100xX en Agosto 16, 2019, 01:20:25 am

Título: Hola me podrian ayudar
Publicado por: XxBL100xX en Agosto 16, 2019, 01:20:25 am
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
Título: Re:Hola me podrian ayudar
Publicado por: 3dgeminis en Agosto 16, 2019, 11:45:12 pm
Asi lo haria sin hspeed:
///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