LinkDudeWolf
Member
So I'm using a movement code that has a small problem when I collide with an object and move diagonally on that object, that object jitters, basically the object it's colliding with become shaky when moving diagonally on that object. can someone explain why? Here's the code:
Step Event:
var pixelsPerSecond = 400;
var timePassed = delta_time / 1000000;
var pixelsThisFrame = pixelsPerSecond * timePassed;
//keyboard
var xdir = keyboard_check(vk_right) - keyboard_check(vk_left);
var ydir = keyboard_check(vk_down) - keyboard_check(vk_up);
if (xdir != 0 or ydir != 0) {
var dir= point_direction(0, 0, xdir, ydir);
var movedSuccesfully = false;
for(var i = 0; i<=80; i+=10) {
for (var n = -1; n <= 1; n+=2) {
var modifiedDir = (n*i) + dir;
var xTarget = x + lengthdir_x(pixelsThisFrame, modifiedDir);
var yTarget = y + lengthdir_y(pixelsThisFrame, modifiedDir);
if (place_free(xTarget, yTarget)) {
x = xTarget;
y = yTarget;
movedSuccesfully = true;
break;
}
}
if (movedSuccesfully) {
break;
}
}
}
Step Event:
var pixelsPerSecond = 400;
var timePassed = delta_time / 1000000;
var pixelsThisFrame = pixelsPerSecond * timePassed;
//keyboard
var xdir = keyboard_check(vk_right) - keyboard_check(vk_left);
var ydir = keyboard_check(vk_down) - keyboard_check(vk_up);
if (xdir != 0 or ydir != 0) {
var dir= point_direction(0, 0, xdir, ydir);
var movedSuccesfully = false;
for(var i = 0; i<=80; i+=10) {
for (var n = -1; n <= 1; n+=2) {
var modifiedDir = (n*i) + dir;
var xTarget = x + lengthdir_x(pixelsThisFrame, modifiedDir);
var yTarget = y + lengthdir_y(pixelsThisFrame, modifiedDir);
if (place_free(xTarget, yTarget)) {
x = xTarget;
y = yTarget;
movedSuccesfully = true;
break;
}
}
if (movedSuccesfully) {
break;
}
}
}
Last edited: