это обычный модуль для упрощённого создания сплит скринов сдельный на Canvas который не требует инициализации список функций: --[[ создает новый сплит экран ( ну то есть экраны из в сплит скрине ) экран рисуется из x1,y1 в точку x2,y2 ну типа как выделение прямоугольником]] ss.newScreen(x1,y1,x2,y2) ss.point(x,y)--[[ как love.graphics.point(x,y) но рисует внутри сплит скрина (конечно с учётом камеры каждого сплит экрана)]] есть также ss.line(x1,y1,x2,y2)--линия ss.poliline(points)--поле-линия(максимум из трех линий) ss.triangle(mode,x1,y1,x2,y2,x3,y3)--треугольник ss.rectangle(mode,x,y,width,height)--прямоугольник ss.circle(mode,x,y,radius)--круг ss.draw(draweble,x,y,angle,xscale,yscale,xorign,yorign)--картинка,канвас,etc. ss.print(text,x,y,angle,xscale,yscale,xorign,yorign)--текст
--рисует наш сплит скрин с кодом code и чёрными линиями между ними line ss.drawScreens(code,line)
итак создадим наш сплит скрин functionlove.load() local w,h = love.graphics.getMode() ss.newScreen(0,0,w/2,h) ss.newScreen(w/2,0,w,h) end
итак рассмотрим понятие сплит экран это один из экранов сплит скрина на которые он разделяется
code - этот параметр должен быть функцией внутри функции можно применять сплит скрин - переменные: cc - текущий сплит экран(current canvas) vx,vy - положение камеры по x и y mx,my - положение мыши по x и y в сплит скрин пространстве с учётом камеры(нельзя изменять) пример ss.drawScreens(function() ss.print(cc,0,0) end) в верхнем углу каждого сплит экрана появится его номер(id)
ss.drawScreens(function() if cc == 1 then ss.print("some text",0,0) elseif cc == 2 then ss.print("aaaaa",mx,my) end end) в верхнем углу первого экрана появится надпись "some text" а во втором экране появится надпись "aaaaa" которая будет преследовать мышь
рассмотрим по подробнее mx и my если мышка будет на одном экране то mx,my будет находится там где находится камера этого сплит экрана
теперь рассмотрим vx и vy vx и vy это координаты камеры текущего сплит экрана например если написать ss.drawScreens(function() vx = vx + 1 end) то камеры всех сплит экранов будут двигаться в право но если написать ss.drawScreens(function() ifcc == 1then vx = vx + 1 end end) то в этом случае будет двигаться только камера первого сплит экрана но это можно сделать и проще если написать vx,vy большими буквами ss.drawScreens(function() VX[1] = VX[1] + 1 end)
VX,VY это таблицы координат камер всех сплит экранов VX[1] это vx принадлежащей первому сплит экрану
кто то наверное заметил что love.graphics.line()/love.graphics.point()... тоже работают правильно но это не совсем так ss. рисует в пространстве сплит скрина а love.graphics. рисует относительно камеры то есть если написать
gr.print("hp",0,0)
то в верхнем левом углу всегда будет надпись hp но если написать
ss.print("hp",0,0)
то если камера задвинется то надпись останется на месте