@noob333

(SDL2 + C) Создание игрового уровня тайлами в 2D игре-платформере и collision detect, способы?

Пытаюсь сделать 2D платформер на си с SDL2, остановился на создании уровня и проверке столкновений, в целом как это сделать понятно, я могу отрисовать один объект и заставить его сталкиваться с другим, но мне нужно рисовать большой уровень, и тут сложность.

Сначала был вопрос как, собственно, создать уровень, платформы, по которым будет бегать персонаж. Уровень у меня состоит из множества тайлов размером в 20x20 пикселей, я выбрал способ из гугла с двумерным массивом, в котором будет p и b, p - пусто, b - блок. Далее делается два цикла с проходом по каждому элементу массива, и если элемент равен b, то там рисуется блок, примерно так:
for (int y = 0; y < arrow_size; y++){
 for (int x = 0; x < arrow_size; x++){
  if(my_level[y][x] == 'b'){
   SDL_Rect block_info = {(x * 20), (y * 20), 20, 20)
   SDL_RenderCopy(render,block_texture, NULL, &block_info);
  }
 }
}


И вроде всё хорошо, но как детектировать столкновения в таком способе? Я не смог найти нормального ответа. Прошу помочь с этим способом или посоветовать другой, спасибо.
  • Вопрос задан
  • 496 просмотров
Пригласить эксперта
Ответы на вопрос 2
ThePyzhov
@ThePyzhov
iOS Ninja
При нажатии клавиши движения, проверяйте, нет ли там блока стены. Если нет - двигайте персонажа, если есть - не двигайте.
Ответ написан
Комментировать
@napa3um
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы