|
- 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
|