API Documentation

Общая информация

Pixel Battle API предоставляет доступ к функциональности игры через REST API и WebSocket. Все ответы API возвращаются в формате JSON.

Базовый URL

http://batpix.ru

Формат ответа

{
  "status": "success|error",
  "data": { ... },
  "message": "Error message if status is error"
}

REST API

Получение состояния холста

GET /api/v1/getCurrentState/image

Получить текущее состояние холста в виде PNG изображения.

Ответ
{
  "status": "success",
  "data": {
    "image": "data:image/png;base64,...",
    "width": 700,
    "height": 300
  }
}

GET /api/v1/getCurrentState/matrix

Получить текущее состояние холста в виде 2D матрицы.

Ответ
{
  "status": "success",
  "data": {
    "matrix": [[[r,g,b],...],...],
    "width": 700,
    "height": 300
  }
}

GET /api/v1/getCurrentState/raw

Получить сырые данные холста.

Ответ
{
  "status": "success",
  "data": {
    "canvas": [[[r,g,b],...],...],
    "width": 700,
    "height": 300,
    "format": "RGB",
    "dtype": "uint8"
  }
}

GET /api/v1/getIframe/{first_x}/{first_y}/{last_x}/{last_y}

Получить часть холста по координатам.

Параметры
  • first_x - начальная X координата
  • first_y - начальная Y координата
  • last_x - конечная X координата
  • last_y - конечная Y координата
Ответ
{
  "status": "success",
  "data": {
    "matrix": [[[r,g,b],...],...],
    "first_x": 0,
    "first_y": 0,
    "last_x": 100,
    "last_y": 100,
    "width": 101,
    "height": 101
  }
}

Размещение пикселей

GET /api/fillPixel/{x}/{y}/{user_id}/{clan_id}

Разместить пиксель через API. Лимит: 100 пикселей в день на пользователя.

Параметры
  • x - X координата
  • y - Y координата
  • user_id - ID пользователя
  • clan_id - ID клана (0 для личного цвета)
Ответ
{
  "status": "success",
  "data": {
    "x": 0,
    "y": 0,
    "color": [r,g,b],
    "pixels_placed_today": 1,
    "remaining_pixels": 99,
    "clan_id": 1,
    "clan_name": "Clan Name"
  }
}
Коды ошибок
  • 400 - Неверные координаты
  • 403 - Пользователь не является членом клана / Клетка занята другим цветом
  • 404 - Пользователь или клан не найден
  • 429 - Достигнут дневной лимит пикселей

WebSocket API

Pixel Battle использует WebSocket для реального времени обновлений холста и взаимодействия с игрой.

Подключение

const socket = io('http://batpix.ru');

События

Входящие события

Событие Описание Данные
connect Успешное подключение к серверу -
canvas_update Обновление состояния холста { canvas: number[][] }
pixel_placed Размещение нового пикселя { x: number, y: number, color: number[] }

Исходящие события

Событие Описание Данные
request_canvas Запрос текущего состояния холста -
place_pixel Размещение пикселя { x: number, y: number, color_type: string }