Viciousse
Member
Hello!
I am facing an issue with collision with, since my player is getting stuck while rotating, bellow the code used for movement and collision check:
Please help :|
I am facing an issue with collision with, since my player is getting stuck while rotating, bellow the code used for movement and collision check:
GML:
//Rotation
var _cc = dcos(image_angle);
var _ss = dsin(image_angle);
var xx = x + _cc*60 + _ss*20;
var yy = y + _ss*60 + _cc*20;
rotation_dir = point_direction(xx, yy, mouse_x, mouse_y);
image_angle += sin(degtorad(rotation_dir - image_angle)) * rotation_spd;
// Controles
key_up = keyboard_check(ord("Z"));
key_down = keyboard_check(ord("S"));
key_left = keyboard_check(ord("Q"));
key_right = keyboard_check(ord("D"));
h_key = key_right - key_left;
v_key = key_down - key_up;
// Local Vars Movements
var dir = point_direction(0, 0, h_key, v_key);
var move_x = lengthdir_x(mossiba_spd, dir);
var move_y = lengthdir_y(mossiba_spd, dir);
if (h_key != 0 or v_key != 0) {
// Gun
if (active_weapon == 1) {
sprite_index = spr_mossiba_gun_walk;
if (place_meeting(x + move_x, y + move_y, obj_walls_0)) {
for(var i = 0; i < abs(move_x); i ++) {
if (!place_meeting(x + sign(move_x), y, obj_walls_0)) {
break;
x +=sign(move_x);
}
}
move_x = 0
for(var i = 0; i < abs(move_y); i ++) {
if (!place_meeting(x, y + sign(move_y), obj_walls_0)) {
break;
y +=sign(move_y);
}
}
move_y = 0;
}
x += move_x;
y += move_y;
}
}
// Idle Animation
if (keyboard_check(vk_nokey)) {
// Gun
if (active_weapon == 1) {
sprite_index = spr_mossiba_gun_idle;
}
}