Можно ли указать размер изображения / спрайта в C ++ / SDL?

Я создаю игру, похожую на этот и я пытаюсь выяснить, как генерировать вражеских рыб случайных размеров. Насколько я могу судить, спрайты, которые вы создаете в SDL, принимают размер изображения, которое вы им даете, но я хочу указать размер моего изображения, когда рыба создается динамически, используя случайные значения для его размер.

Мое задание использует SDL и предоставленную нам платформу, поэтому я не могу импортировать какие-либо модные библиотеки.

Кто-нибудь может указать мне правильное направление с этим?

0

Решение

То, что вы ищете, называется scaling, Вы можете проверить это руководство чтобы легко добавить функцию в вашу игру. Предлагаемый rotozoom можно найти в SDL_gfx, имеется в наличии Вот.

Если вы идете по этому пути и решили написать свой собственный код для целей обучения, просто имейте в виду, что масштабирование вручную SDL_Surface это дорого, поэтому вы, вероятно, должны делать это только тогда, когда вы нерестите рыбу и сохраняете поверхность на протяжении всей жизни рыбы.

Другой вариант — сделать 2D-игру с использованием 3D-графики; в основном вы просто растягиваете треугольники так, как хотите, и текстура подстраивается под нее.

1

Другие решения

Других решений пока нет …