|
- local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
- local CommonHuCardView = require("mj.luaScript.Common.2d.CommonHuCardView")
-
- local Mahjong3DHuCardView = class("Mahjong3DHuCardView", CommonHuCardView)
-
- function Mahjong3DHuCardView:ctor(viewId)
- Mahjong3DHuCardView.super.ctor(self, viewId)
- end
-
- -- todo lwq xueliu begin
- function Mahjong3DHuCardView:createXueliuHuCard(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 Mahjong3DHuCardView:getXueliuHuCardPosition(mjCard, mjIndex)
- local viewId = self:getViewId()
- local offsetConfig = MJDefine.MJConfig_3d.OutCardOffsetConfig[viewId]
- local startPos = MJDefine.MJConfig_3d.XueliuHuCardStartPos[viewId]
- local rowCount = 11
- if app.room:getMaxPlayerCount() == 2 then
- startPos = MJDefine.MJConfig_3d.XueliuHuCardStartPos2[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 Mahjong3DHuCardView:refreshXueliuHuZOrder()
- if app.room:getMaxPlayerCount() == 2 then
- self:refreshXueliuHuZOrder2()
- return
- end
-
- local viewId = self:getViewId()
- for cardIndex, card in ipairs(self._huCardNodes 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 Mahjong3DHuCardView:refreshXueliuHuZOrder2()
- local viewId = self:getViewId()
- for cardIndex, card in ipairs(self._huCardNodes 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
-
- -- todo lwq xueliu end
-
-
- function Mahjong3DHuCardView:createCard(info, mjIndex)
- local huCard = info.huCard
- local huType = info.huType
- local viewId = self:getViewId()
- local mjType = huCard == 0 and MJDefine.MJConfig_3d.MJType.HuBlack or MJDefine.MJConfig_3d.MJType.Hu
- local Mahjong3DCard = require(MJDefine.MJConfig_3d.MAHJONG_CARD)
- local mjCard = Mahjong3DCard:new(huCard, viewId, mjType, mjIndex)
- if huCard ~= 0 then
- self:setHuCardColor(mjCard, huType)
- end
- return mjCard
- end
-
- function Mahjong3DHuCardView:getHuCardScale (mjCard, mjIndex)
- if not MJDefine.MJConfig_3d.MJHuScale then
- return 1.0
- end
- local viewId = self:getViewId()
- local huScale = MJDefine.MJConfig_3d.MJHuScale[viewId] or 1.0
- return huScale
- end
-
- function Mahjong3DHuCardView:getHuCardPosition(mjCard, mjIndex)
- local viewId = self:getViewId()
- local startPos = MJDefine.MJConfig_3d.HuCardStartPos[viewId]
- local x = startPos.x + MJDefine.MJConfig_3d.HuCardCoorConfig[viewId][mjIndex].x
- local y = startPos.y + MJDefine.MJConfig_3d.HuCardCoorConfig[viewId][mjIndex].y
- return x, y
- end
-
- function Mahjong3DHuCardView:getHuCards(huCards, isClean)
-
- self._huCards = self._huCards or {};
-
- if isClean then
- self._huCards = {};
- end
-
- for k, v in ipairs(huCards or {}) do
- table.insert(self._huCards, v);
- end
-
- self:createHuCards(self._huCards)
-
- end
-
- function Mahjong3DHuCardView:refreshHuCardZOrder(huCardNodes)
- local viewId = self:getViewId()
-
- for k, mjCard in ipairs(huCardNodes or {}) do
- local col = k % 20 == 0 and 20 or k % 20 -- 列数,从右往左数
- local row = math.ceil(k / 20) -- 行数,从下往上
- local zorder = col
- if viewId == 1 then
- zorder = col
- elseif viewId == 2 then
- zorder = 10 - col
- zorder = zorder > 0 and -zorder or zorder
- zorder = zorder + (row - 1) * 10
- elseif viewId == 4 then
- zorder = 10 - col
- zorder = zorder > 0 and -zorder or zorder
- zorder = zorder - (row - 1) * 10
- elseif viewId == 3 then
- zorder = 20 - col
- end
-
- mjCard:setLocalZOrder(zorder)
- end
- end
-
- return Mahjong3DHuCardView
|