Myślę, że w
GML
if mw= false and ma= false and ms= false and md= true{ m= false; }
powinno być
GML
if mw= false and ma= false and ms= false and md= false{ m= false; }
Poza tym było kilka mniejszych błędów, więc wysyłam cały kod
GML
//Zmienne
W= keyboard_check(ord("W"));
A= keyboard_check(ord("A"));
S= keyboard_check(ord("S"));
D= keyboard_check(ord("D"));
//Poruszanie sie
if(W and place_free(x,y-moveSpeed)){
y-= moveSpeed;
mw= true;
}else{
mw= false;
}
if(A and place_free(x-moveSpeed,y)){
x-= moveSpeed;
ma= true;
}else{
ma= false;
}
if(S and place_free(x,y+moveSpeed)){
y+= moveSpeed;
ms= true;
}else{
ms= false;
}
if(D and place_free(x+moveSpeed,y)){
x+= moveSpeed;
md= true;
}else{
md= false;
}
//Animacja
if(mw= true or ma= true or ms= true or md= true){
if(m=false){
m=true;
}
}
if(mw= false and ma= false and ms= false and md= false){
if(m=true){
m=false;
}
}
if(m= true){
image_speed= 0.14;
sprite_index= sHeroWalking;
}else{
if(sprite_index!=sHero){
image_speed= 0.05;
sprite_index= sHero;
}
}
if(md= true){
image_xscale= -1;
}else{
if(ma= true){
image_xscale= 1;
}
}