Обсуждаем разработку на Solar2D & Corona Native Скачать движок: https://github.com/coronalabs/corona/releases Документация: https://docs.coronalabs.com/
ObjMT.setFillColor = function(obj, ...)Читать полностью…
local c = {...}
if #c == 1 then
setTableValue(obj.color, c, 3, 1, 1, 1)
obj.color[4] = 1
elseif #c == 2 then
setTableValue(obj.color, c, 4, 1, 1, 1, 2)
elseif #c == 3 then
setTableValue(obj.color, c, 3, 1, 2, 3)
obj.color[4] = 1
elseif #c >= 4 then
setTableValue(obj.color, c, 4, 1, 2, 3, 4)
end
end
n нужна, что бы заполнить только несколько элементов
Читать полностью…Мне кстати особенно нравятся мои удобные функции)
local setTableValue = function(t1, t2, n, ...)Читать полностью…
for i = 1, n do
local N = select(i, ...)
t1[i] = t2[N]
end
end
local funNotImplemented = function()
print("the function is not implemented")
end
Да и если что-то сломается это его проблемы, он же не захотел правильно использовать класс)
Читать полностью…Единственное, что ты на этом получаешь неожиданного — метод new()
у объектов, или что-то такое. И то это может использоваться для клонирования.
А так — тебе по хорошему не надо вызывать методы класса от имени класса, кроме new
. А если вдруг надо — добавляешь function myclass:_class_method() ... end
, чтобы было видно что эту фигню лучше не вызывать просто так.
А ещё можно написать
local Group = {}
Group.__index = Group
Group
.Group
. И объекты имеют доступ к родителю через self.__index
(но лучше добавить общее поле а ля Group.Parent = Group
).Конструкции вида ObjMT.scale = function(obj, scaleX, scaleY)
не кажутся тяжёлыми?
Не удобней будет function ObjMT:scale(scaleX, scaleY)
?
Я в общем-то не могу придраться, сам пишу менее замороченно.
Читать полностью…Тогда вопрос "кто со мной?" лишний
Читать полностью…Ну всё, делаем мега кластер, мега КОНГЛОМЕРАТ-ДВИЖОК исправляющий ошибки Solar2D и Love2D)
Читать полностью…Ну вообще да, там же .h библиотеки
Читать полностью…А тут без разницы, си или плюсы.
#include stdlib.hЧитать полностью…
// тут мы в плюсах
extern "C" {
// а тут уже типа в сишке
//... код связывания плюсов с луашкой
}
Простейший пример сишной либы которую можно подключить в луашку (и солярку и ловку) и сделать
local lib = require'mylib'
print(lib.summ(10, 20)) --> 30
Это же буквально способ сделать неплохую библиотеку
Читать полностью…А может их просто не передавать, а заполнять всё что передают?
Читать полностью…А зачем тут n? Для длины?
local function setTableValue(t1, t2, ...)
for i = 1, select("#", ...) do
local key = select(i, ...)
t1[i] = t2[key]
end
end
Настанет время и я дорасту до этого...
Читать полностью…Визуальное отделение тонко намекает, и заставляет код юзера выглядеть сильно грязнее, от чего тому противнее, от чего тот не будет вызывать приватную фигню, вот.
Читать полностью…Вообще да, просто мне приятнее когда методы класса отделены от тех, что передаются объектам
Читать полностью…ObjMT это табличка с общими функциями для классов объектов. В самих же объектах вызов будет myObj:scale(1, 0.5)
Читать полностью…Да, всё быстро находится, классы разборчивы, без лишнего мусора.
Ну а если человек что-то сломает, это не мне решать)
а в общем классы и код в общем нормально написаны?
Читать полностью…Обязательно, это в первую очередь, после встроенной ОС)
Читать полностью…Ещё чтобы проги сам писал и песенки играл
Читать полностью…Язык C это уже далеко не столько язык программирования, сколько стандарт связи разных языков программирования.
Все, абсолютно все современные (и не очень) языки поддерживают сишные интерфейсы, и могут через него связываться с любым другим языком поддерживающим этот протокол.
А плюсы — можно сказать что содержат в себе некое подобие сишки буквально.
Только интересно как с этим работать когда то и то. Они же не будут связаны, как мне кажется. А так же нужно посмотреть, как собственно это же только для других платформ
Читать полностью…Спс , а я думал что зря раньше си учил ведь всеровно пишу на си++
Читать полностью…love.graphics.print(text or coloredText)
Читать полностью…В солярке 5.1, в ловке luajit. Вообще могут работать.
Читать полностью…