local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine") local MJSound=MJFramework.MJImport("mj.luaScript.MJSound") local CommonOutCardView = require("mj.luaScript.Common.2d.CommonOutCardView") local Mahjong3DOutCardView = class("Mahjong3DOutCardView", CommonOutCardView) function Mahjong3DOutCardView:ctor(viewId) Mahjong3DOutCardView.super.ctor(self, viewId) end function Mahjong3DOutCardView:createCard(value, viewId, cardIndex) -- local Mahjong3DCard = require("mj.luaScript.Common.3d.Mahjong3DCard") local Mahjong3DCard = require(MJDefine.MJConfig_3d.MAHJONG_CARD) local card = Mahjong3DCard:new(value, viewId, MJDefine.MJConfig_3d.MJType.Out, cardIndex) return card end function Mahjong3DOutCardView:getOutCardPosition(mjCard, mjIndex) local viewId = self:getViewId() local offsetConfig = MJDefine.MJConfig_3d.OutCardOffsetConfig[viewId] local startPos = MJDefine.MJConfig_3d.OutCardStartPos[viewId] local rowCount = 11 if app.room:getMaxPlayerCount() == 2 then startPos = MJDefine.MJConfig_3d.OutCardStartPos2[viewId] offsetConfig = MJDefine.MJConfig_3d.OutCardOffsetConfig2[viewId] rowCount = 19 end local row = math.ceil( mjIndex / rowCount ) local col = mjIndex % rowCount col = (col == 0) and rowCount or col local offsetX = offsetConfig[row][col].x local offsetY = offsetConfig[row][col].y local x = startPos.x + offsetX local y = startPos.y + offsetY return x, y end function Mahjong3DOutCardView:refreshZOrder() if app.room:getMaxPlayerCount() == 2 then self:refreshZOrder2() return end local viewId = self:getViewId() for cardIndex, card in ipairs(self._outCardNodes or {}) do local row = math.ceil( cardIndex / 11 ) local col = cardIndex % 11 col = (col == 0) and 11 or col local zorder = col if viewId == 1 then zorder = (3 - row) * 10 - col elseif viewId == 2 then zorder = 6 - col zorder = zorder > 0 and -zorder or zorder zorder = zorder - row * 10 elseif viewId == 4 then zorder = 6 - col zorder = zorder > 0 and -zorder or zorder zorder = zorder + row * 10 elseif viewId == 3 then zorder = col - (row - 3) * 10 end card:setLocalZOrder(zorder) end end function Mahjong3DOutCardView:refreshZOrder2() local viewId = self:getViewId() for cardIndex, card in ipairs(self._outCardNodes or {}) do local row = math.ceil( cardIndex / 19 ) local col = cardIndex % 19 col = (col == 0) and 19 or col local zorder = col if viewId == 2 then zorder = 10 - col zorder = zorder > 0 and -zorder or zorder zorder = zorder - row * 10 elseif viewId == 4 then zorder = col - 10 zorder = zorder > 0 and -zorder or zorder zorder = zorder + row * 10 end card:setLocalZOrder(zorder) end end return Mahjong3DOutCardView