Луа ой, начиная - PullRequest
       1

Луа ой, начиная

0 голосов
/ 22 сентября 2018

Я пытаюсь получить код, работающий с этим видео: 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()

Какие-нибудь мысли.Спасибо.

1 Ответ

0 голосов
/ 22 сентября 2018

Вы сделали опечатку при копировании текста из видео.

Строка setmetatable(vec, Vector2, mt) должна быть setmetatable(vec, Vector2.mt)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...