изменить размер массива при сохранении маски - PullRequest
0 голосов
/ 23 июня 2018

Я пытаюсь выяснить, как эффективно изменить размер 1-го массива при сохранении маски, которую он представляет.Используя этот массив, я рисую простые спрайты, в то время как одно значение в массиве представляет определенный цвет.

В любом случае моя цель заключается в следующем, имея следующий «маленький» массив со значениями:

0, 1, 2, 3,
0, 1, 2, 2,
0, 1, 1, 1,
0, 0, 1, 1,
0, 0, 0, 0

Это, очевидно, будет спрайт размером 4x5.

Теперь я хочу изменить его размер, сохранив значения, чтобы получить тот же спрайт / форму, но с более высоким разрешением.

Теперь, сказав "scale-by-2 "я бы получил спрайт размером 8x10, тогда массив 1-й должен выглядеть следующим образом:

0, 0, 1, 1, 2, 2, 3, 3,
0, 0, 1, 1, 2, 2, 3, 3,
0, 0, 1, 1, 2, 2, 2, 2,
0, 0, 1, 1, 2, 2, 2, 2,
0, 0, 1, 1, 1, 1, 1, 1,
0, 0, 1, 1, 1, 1, 1, 1,
0, 0, 0, 0, 1, 1, 1, 1,
0, 0, 0, 0, 1, 1, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0

Моя идея состоит в том, чтобы сгруппировать числа построчно, взять коэффициент масштабирования (2) и добавьте столько цифр (из одной группы), сколько нужно масштабировать (2) в одном ряду.Затем продублируйте каждую строку по коэффициенту масштабирования.Но все же я не уверен, охватывает ли это все случаи.

Любой другой (более эффективный) способ справиться с этим?

...