Одна вещь, которую вы можете сделать, это вместо того, чтобы персонаж «двигался назад», когда он ударяет по кустарнику, вы можете изменить его положение.
То, что я имею в виду, выглядит примерно так: (Используется только для примера).
if (osl_keys->held.up)
{
if (bushcol == 0)
{
sprite->y -= 4;
sprite_position = UP;
SpriteAnimate();
}
else
{
sprite->y = bush->y + 2;
bushcol = 0;
}
}
Таким образом, всякий раз, когда спрайт сталкивается, он просто устанавливает положение, вместо этого заставляя его двигаться назад.
Существуют и другие методы обнаружения столкновений, но я сейчас слишком устала, чтобы вывести умный, гораздо менее читабельный ответ прямо сейчас ... Поиск в Google может привести ко многим результатам.