What code make key_dash=true?
You need to post more code. The code you posted just say:
if key_dash is true and the sprite index is spr_player_left set hspd to spd*-4
The problem must be somewhere else in the code.
this the creat event code for my player
///Initialize Variable
// The Game main gravity
grav = 1;
// Player main speed
spd = 4;
// Player how high can jump
jspd = 12;
// IF player not moving speed zero
hspd = 0;
// IF player not moving speed zero
vspd = 0;
// Player friction speed
fric = 1;
//variable to double jump the higher the number the more jumps player can do
doublejump = 1;
this the code for my step event for my player
/// Platfrom physics
var key_left = keyboard_check(ord("A"));
var key_right = keyboard_check(ord("D"));
var key_jump = keyboard_check_pressed(vk_space);
var key_dash = keyboard_check_pressed(vk_shift);
//camera movement
camera_movement();
// Check for ground
if (place_meeting(x,y+1,obj_solid))
{
doublejump = 1;
vspd=0;
// Jumping
if (key_jump)
{
vspd = -jspd
}
}
// This is a else statment if the statement above is false then this statement will be true
else
{
//Gravity
if (vspd < 10)
{
vspd += grav;
}
if (keyboard_check_released(vk_space) && vspd <-4)
{
vspd = -4;
}
//checking for doublejump
if (doublejump > 0)
{
if (key_jump)
{
vspd = -jspd;
doublejump -= 1;
}
}
}
// dash speed left
if(key_dash) and sprite_index = spr_player_left
{
hspd=spd*-4;
}
// dash speed left
if(key_dash) and sprite_index = spr_player_right
{
hspd=spd*+4;
}
//moving right
if(key_right)
{
//sprite moving right the sprite changes to player right sprite
sprite_index = spr_player_right;
if(hspd < spd)
{
hspd += fric;
}
else
{
hspd = spd;
}
// Left Wall jump !key_left
if (place_meeting(x-1,y,obj_solid) && !place_meeting(x,y+1,obj_solid) && !key_left)
{
vspd = -jspd;
}
}
//moving left
if(key_left)
{
sprite_index = spr_player_left;
if(hspd > -spd)
{
hspd -= fric;
}
else
{
hspd = -spd;
}
// right Wall jump !key_right
if (place_meeting(x+1,y,obj_solid) && !place_meeting(x,y+1,obj_solid) && !key_right)
{
vspd = -jspd;
}
}
//Check for not moving
if((!key_right && !key_left) || (key_right && key_left))
{
if (hspd != 0)
{
if (hspd < 0)
{
hspd +=fric;
}
else
{
hspd -=fric;
}
}
}
//horizontal collision
if (place_meeting(x+hspd,y,obj_solid))
{
while (!place_meeting(x+sign(hspd),y,obj_solid))
{
x+= sign(hspd);
}
hspd = 0;
}
//move horizontally
x += hspd;
// Vertical collisions
if (place_meeting(x,y+vspd,obj_solid))
{
while (!place_meeting(x,y+sign(vspd),obj_solid))
{
y+= sign(vspd);
}
vspd = 0;
}
// Moving vertically
y += vspd;