SFML- произвольно масштабируемый спрайт

Я программирую клона Flappy Bird и у меня проблемы с препятствиями. Я хочу сделать его случайным образом масштабируемым (чтобы зазор был на случайной высоте). Я понятия не имею, как это сделать. Я создал изображение PNG, которое выглядит так:

препятствие

и попытался проверить, как это будет выглядеть, когда я его масштабирую (просто sf::Sprite.setScale()). Я не был удивлен, что это выглядит так:плохое масштабирование,

Итак, мой вопрос, как сделать так, чтобы это выглядело так:

Какую графику я должен сделать и как кодировать масштабирование?

1 ответ

Вы не должны использовать sf::Sprite.setScale(), это сделает ваши изображения "масштабированными" и несовместимыми с "миром", который вы создаете.

Опции

Другими вариантами является создание мира с "плитками", с ними будет проще обращаться в будущем.

Вы можете создать мир на основе плиток со следующими параметрами:

  • С помощью плиточного инструмента редактирования карт (вам придется создавать карты вручную).
  • Создание собственной системы для случайного создания миров с помощью плиток (это может быть сложно, но в итоге вы получите хороший дизайн).

Могу ли я использовать активы, которые я уже сделал с системой плиток?

Да, ты можешь. Вам нужно только разделить свои активы на плитки.

Хотя вы всегда можете использовать описанную вами систему, если вам будет проще.

Другие вопросы по тегам