Pico-8 Draw Dot: руководство для начинающих по созданию пиксельной графики

Вы поклонник ретро-игр и пиксельной графики? Если да, то вас ждет угощение! В этой статье блога мы окунемся в мир Pico-8 и рассмотрим различные методы рисования точек, которые являются строительными блоками пиксельной графики. Так что хватайте виртуальную палитру и начнем!

Метод 1: использование встроенной функции Pico-8
Pico-8 предоставляет удобную встроенную функцию под названием «pset(x, y, color)», которая позволяет рисовать один пиксель в указанном месте. координаты (x, y) нужного цвета. Например, чтобы нарисовать красную точку в координатах (10, 20), вы можете использовать следующий фрагмент кода:

pset(10, 20, 8)

В этом случае значение цвета «8» соответствует индексу красного цвета в цветовой палитре Pico-8.

Метод 2: использование цикла для рисования линии из точек
Если вы хотите нарисовать линию из точек, вы можете использовать цикл для перебора диапазона координат x и вызвать функцию «pset» по адресу каждый шаг. Эта техника позволяет создавать линии, кривые и более сложные формы. Вот пример рисования горизонтальной линии из зеленых точек от x = 20 до x = 40:

for x = 20, 40 do
  pset(x, 30, 12)
end

В этом коде цикл выполняет итерацию от x = 20 до x = 40 и на каждом шаге вызывает функцию «pset», чтобы нарисовать точку в точке y = 30 с индексом цвета «12» (зеленый).

Метод 3: реализация функции для рисования кругов
Нарисовать круги можно с помощью хорошо известного алгоритма, называемого алгоритмом среднего круга. Реализуя этот алгоритм внутри функции, вы сможете легко рисовать круги любого размера и цвета. Вот пример функции drawCircle, которая рисует желтый круг по координатам (50, 50) с радиусом 10:

function drawCircle(x, y, radius, color)
  local r = radius
  local cx, cy = x, y
  local err = -r
  local x, y = r, 0
  while x >= y do
    pset(cx + x, cy + y, color)
    pset(cx - x, cy + y, color)
    pset(cx + x, cy - y, color)
    pset(cx - x, cy - y, color)
    pset(cx + y, cy + x, color)
    pset(cx - y, cy + x, color)
    pset(cx + y, cy - x, color)
    pset(cx - y, cy - x, color)
    local e2 = 2 * err
    if e2 <= y then
      y = y + 1
      err = err + y * 2 + 1
    end
    if e2 >= x or err >= y then
      x = x - 1
      err = err + x * 2 + 1
    end
  end
end
drawCircle(50, 50, 10, 11)

В этом коде функция drawCircle принимает в качестве входных данных координаты центра (x, y), радиус и цвет. Затем он использует алгоритм средней точки круга для рисования восьми симметричных точек по окружности круга.

Теперь, когда вы изучили несколько методов рисования точек в Pico-8, возможности для создания пиксельной графики безграничны! Экспериментируйте с разными цветами, формами и узорами, чтобы воплотить в жизнь свои творения в стиле ретро.