Понимаю, что таких тем уже множество, но не одна из них не дала четкое понятие и примера, я пытался сделать его сам из кусков в описаниях этих множества тем:
final int[][] world = {
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0}
};
float width = 128,
height = 64,
Xo = 0, Yo = 0, Xc = 0,
C = (float) Math.floor(canvas.getWidth() / 2);
for (int i = 0; i < world.length; i++) {
Yo = (height / 2) * i;
Xc = C - (width / 2 * i);
for (int j = 0; j < world[0].length; j++) {
Xo = Xc + (j * (width / 2));
Yo += height / 2;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.floor);
canvas.drawBitmap(bitmap, Xo-width/2, Yo-height/2, null);
}
}
Получается фигня, какая-то:
Мало того, что выходит постоянно за экран, так еще и растягивает квадраты.
Помогите исправить код.
Не могу никак врубиться, что делаю не так.
Мне категорически не нравится вариант использовать текстурки в форме ромбовидных клеток. На разных экранах вы будете получать немного разную картинку при правильном размещении, или наложение одной текстурки на другу в пиксель при неправильном
Я просчитал координаты для первой ячейки в canvas.drawBitmap(bitmap, Xo-width/2, Yo-height/2, null) для нее уходят координаты (0:C/2). Соответственно рисуется первая ячейка с C/2 по С/2+width/2, что явно не соответствует тому, что вы хотите получить.
Плюс точно проблема с вычислениями. Никогда не используйте конструкции Yo += height / 2; когда речь про координаты. И прям бейте себя по рукам, если еще и Yo и height - целые числа. В таком случае постоянно работает округление, и у вас копится ошибка. Canvas отлично справляется с дробными координатами в большинстве случаев.
Исправьте алгоритм, вычисляете Y не приращением, а вычисление, и вполне вероятно решится проблема с растянутыми клетками
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Есть скрипт, который подключается к двум страницам, но выполнение должно отличаться в зависимости от страницыВозможно ли при подключение,...
нуждаюсь в небольшой помощи с регуляркамиУ меня есть регулярное выражение, которое осталось доделать, а сам не справлюсь
Есть сайт https://megatimerru/ на котором я настраиваю дату окончания таймера и сам таймер, и есть файл megatimer