2013-04-24 4 views
0

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

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

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

+0

У вас могут быть лучшие ответы, если вы разместите этот вопрос в [Разработка игр] (http://gamedev.stackexchange.com/) вместо StackOverflow. – Morwenn

+1

изменяет размер вашей рамки? У вас есть следующие варианты: 1. Вы можете создать меньшую растровую карту, переместив каждый n-й пиксель на новую поверхность. 2. Используйте SDL_rotozoom, который не включен в SDL. –

+0

Просто интересно, нужен ли вам более подробный ответ с моей стороны? – emartel

ответ

1

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

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

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

Смежные вопросы