Android сетка точек для заполнения Просмотр - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь создать игру в Android Studio, используя Kotlin, в настоящее время у меня есть сетка, нарисованная с использованием двух циклов for (1 для столбцов и 1 для строк), которые обозначают точки aws. Я хочу, чтобы точки заполняли вид без пустого пространства вокруг сетки. Есть идеи?

val columns = 5
val rows = 5 

var xPos: Float = width / (columns + 1)
var yPos: Float = height / (rows + 1)

        for (col in 1..columns) {
            for (row in 1..rows) {
                canvas.drawPoint(col*xPos, row*yPos, paint)
             }
         }

Что я получу: What I get d

Что я хочу: enter image description here

1 Ответ

1 голос
/ 02 мая 2020

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

Затем вы можете использовать отступ в ваших вычислениях. Например, если у вас есть пять столбцов, чтобы получить расстояние между точками, вы хотите разделить ширину на четыре после вычитания отступов с обеих сторон.

val padding = /* ... */
val columns = 5
val rows = 5 
val hSpacing = (width - (2 * padding)) / (columns - 1)
val vSpacing = (height - (2 * padding)) / (rows - 1)

for (i in 0..columns)
    for (j in 0..rows)
        canvas.drawPoint(padding + i * hSpacing, padding + j * vSpacing, paint)
...