Since the 2.3.4.577 update whenever I pull over to the right and to the bottom of a collision block, depending on how stretched it is, I get trough it.
If the block isn't streched i don't get trough it.
In this image you can see the collision (red line) and see how streched the block.
You can see aswell that the player (fox) gets trough the more streched one and stays on top of the other.
Have this happen to anyone else besides me?
View attachment 42894
Also i already updated gamemaker to the 2.3.4.580 version and it ins't working either
collision code
set hsp code
If the block isn't streched i don't get trough it.
In this image you can see the collision (red line) and see how streched the block.
You can see aswell that the player (fox) gets trough the more streched one and stays on top of the other.
Have this happen to anyone else besides me?
View attachment 42894
Also i already updated gamemaker to the 2.3.4.580 version and it ins't working either
collision code
Code:
if place_meeting(x + hsp,y,o_col_parent) {
while (!place_meeting(x + sign(hsp), y, o_col_parent)) {
x = x + sign(hsp);
}
hsp = 0;
walljumped = false;
canwalk = true;
}
x = x + hsp;
if place_meeting(x, y + vsp,o_col_parent) {
while (!place_meeting(x, y + sign(vsp), o_col_parent)) {
y = y + sign(vsp);
dust = 0;
}
if dust = 0 {
audio_play_sound(a_floor,0,0);
if !place_meeting(x,y,o_agua) && place_meeting(x, y + 1,o_col_parent) {
instance_create_layer(random_range(bbox_right-3,bbox_right+3), bbox_bottom, "Particles", o_po);
instance_create_layer(random_range(x-3,x+3), bbox_bottom, "Particles", o_po);
instance_create_layer(random_range(bbox_left-3,bbox_left+3), bbox_bottom, "Particles", o_po);
ScreenShake(3,1);
}
}
dust ++;
vsp = 0;
walljumped = false
canwalk = true;
}
Code:
if (!walljumped && wall_jump_cooldown >= wall_jump_set_cooldown) {
if (key_right && canwalk = true) {
if (hsp < walkspd + ehsp && hsp >= ehsp ) hsp += 0.5;
if (hsp > walkspd + ehsp && (place_meeting(x,y+1,o_col_parent) || place_meeting(x,y+7,o_slope_parent) || (place_meeting(x,y+10,o_slope_parent) && hsp > 7))) hsp -= 0.3;
if (hsp < ehsp) hsp = ehsp + 1;
}
else if (key_left && canwalk = true) {
if (hsp > -walkspd + ehsp && hsp <= ehsp) hsp -= 0.5;
if (hsp < -walkspd + ehsp && (place_meeting(x,y+1,o_col_parent) || place_meeting(x,y+7,o_slope_parent) || (place_meeting(x,y+10,o_slope_parent) && hsp > 7))) hsp += 0.3;
if (hsp > ehsp) hsp = ehsp - 1;
}
else if (!key_right && !key_left) {
if (abs(hsp) > abs(ehsp)){
if abs(hsp) > abs(ehsp) + 0.5 {
if (hsp > ehsp) hsp -= abs(hsp)/6; else hsp += abs(hsp)/6;
} else hsp = ehsp;
} else hsp = ehsp;