Lua类之间的交互

我在学习 Lua 的面向对象编程方面又遇到了一个问题,可惜我自己找不到解决方法。我有两个类:第一个是网格类,你可以在这里看到它:我的网格类,另一个是名为玩家的类:

require('scripts.character.Character')
require('scripts.grid.Grid')
local screen = require( 'data.screen')
Player = {}
Player_mt = { __index = Player }

--- 构造一个新的角色对象。

function Player:new(  params )

    local self = {}

    setmetatable( self, Player_mt )

    -- 创建玩家视觉效果
    self._visual = display.newImageRect( params.group, "images/player.png", screen.tileWidth, screen.tileHeight )
    self.types = "player"

    local function try( event)

       --我想在这里使用一个网格方法!
    end

    self._visual.tap = try
    self._visual:addEventListener( "tap", self._visual )

    return self

end

setmetatable( Player, Character_mt )

我在我的网格类中添加了一个方法:

function Grid:resetColor()
    for x = 1, screen.tilesAcross  do
        for y = 1, screen.tilesDown do
            grid:setColor(x, y)
        end
    end
end

我在想,我不能在玩家类中这样做,因为我没有一个网格对象可以让玩家类访问。在我的主程序中,我使用我的网格类方式如下:

local grid = Grid:new({group = gridgroup})

玩家类如下:

character[i][j] = Player:new( { group = playergroup}  )

如何将这两个类连接起来,以便能够从玩家访问我的网格,我已经尝试过几种方法,比如将网格作为全局变量或将网格作为参数传递,但一切都失败了。再次感谢!

点赞