Я пытаюсь получить код, работающий с этим видео: Lua Tutorial 9: OOP и Metatables около 11 минут в видео
Я новичок в lua, но у меня естьопыт программирования, поэтому, пройдя основы языка, я подумал, что смогу научиться некоторым методам работы.В моем коде я заменил vector3 на Vector2, так как сейчас мне нужно работать в 2d.Мощные таблицы Lua - это то, что мне действительно нужно понимать, чтобы быть более беглым на языке грубой обработки.
однако я получаю ошибку: input: 38: попытка выполнить арифметику для табличного значения(локальный 'v1')
У меня такая же проблема тестирования: демонстрационный интерпретатор lua Код, который я пробую:
Vector2 = {x = 0, y = 0}
Vector2.prototype = {x = 0, y = 0}
Vector2.mt = {}
Vector2.new = function()
local vec = {}
setmetatable(vec, Vector2, mt)
for k, v in pairs(Vector2) do
vec[k] = v
end
return vec
end
Vector2.mt.__add = function(v1, v2)
local vec = Vector2.new()
vec.x = v1.x + v2.x
vec.y = v1.y + v2.y
return vec
end
function draw()
local v1 = Vector2.new()
local v2 = Vector2.new()
v1.x = 10
v1.y = 34
v2.x = 20
v2.y = 22
v1 = v1 + v2
print(v1.x)
end
draw()
Какие-нибудь мысли.Спасибо.