@urikus

Видимость переменных и ООП в lua?

Использую Corona sdk для разработки игр на мобильные платформы. По завершении первого проекта осознал необходимость использования ООП в следующих играх, но сталкиваюсь с затруднениями.
Для создания классов использую вот эту библиотеку yonaba.github.io/30log

Суть вопроса в следующем: как экземпляр класа может вызвать фунцкию из основной сцены? Например - в level.lua я управляю подсчетом игровых очков, создаю ,например, мыльный пузырь, при нажатии на пузырь, счетчик очков должен увеличиваться на 10. Если я создаю его функцией в самом level.lua, проблем нет, я просто к переменной очков добавляю 10. А вот если создаю его как экземпляр класса (допустим ball.lua), то как в level.lua я узнаю что пузырь был нажат? Сам то пузырь конечно знает что его нажали, но как обратиться к переменной счетчика, чтобы ее увеличить?
  • Вопрос задан
  • 455 просмотров
Пригласить эксперта
Ответы на вопрос 1
angru
@angru
либо так, либо передавать в конструктор каждого игрового обьекта какой-нибудь обьект типа world, в котором хранятся все обьекты.

Ball = class("Ball", { x = 0, y = 0, world = nil })

function Ball:init(x, y, world) 
    self.x, self.y self.world = x, y, world
end

function Ball:touch()
    local counter = self.world.get('counter')
    counter.increase(10)
end


как-то так наверное
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы