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 } |