SDL - динамическая альфа? - PullRequest
1 голос
/ 22 мая 2011

Я планирую создать игру (в SDL), в которой, если перемещается один персонаж, часть изображения, на которой он находился, становится альфа-версией, что позволяет мне размещать прокручиваемое изображение под исходной сценой.

1) Возможно ли это? 2) Если да к # 1, как я могу реализовать это (не для того, чтобы дать мне код, а чтобы направить меня в правильном направлении).

1 Ответ

1 голос
/ 22 мая 2011

Звучит так, будто вы хотите узнать о создании изображений .

Типичная игра в наши дни будет иметь функцию redraw где-то для перерисовки всего экрана.Вся сцена всегда перерисовывается в каждом кадре.

void redraw()
{
    drawBackground();
    drawCharacters();
    drawHUD();
    swapBuffers();
}

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

SDL имеет программные функции компоновки изображений, которые вы можете использовать, или вы можете использовать OpenGL (который может использовать комбинацию программного и аппаратного обеспечения).Я лично использую OpenGL, потому что он более мощный (позволяет рисовать более сложные сцены), но функции компоновки SDL проще в использовании.В Интернете есть много отличных учебных пособий и много более посредственных или ужасных учебных пособий.

Я не уверен, что вы имеете в виду, когда говорите «часть изображения, которая была на альфа-поворотах».Альфа-канал не отображается на экране, его нельзя увидеть, он просто влияет на компоновку двух изображений.

...