|
- local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
- local MJFunction=MJFramework.MJImport("mj.luaScript.MJFunction")
- local BaseMahjong3DCard = MJFramework.MJFrameworkClassImprot("mj.luaScript.Common.3d.Mahjong3DCard")
- local Card3D = class("Card3D", BaseMahjong3DCard)
-
- function Card3D:ctor(...)
- Card3D.super.ctor(self, ...)
- end
-
- --- Card3D:setLuoBoVisible 显示萝卜标识
- -- @param isVisible 是否显示,为true时,count可不传
- -- @param count 萝卜牌数量
- function Card3D:setLuoBoVisible(isVisible, count, groupIndex)
- if self._mjType == MJDefine.MJConfig_3d.MJType.Stand then
- if self._viewId ~= MJDefine.PlayerViewType.My then
- return
- end
- end
-
-
- local viewId = self:getViewId()
- local imgFlag = self:getChildByName("img_luobo_flag")
- if not imgFlag then
- imgFlag = cc.ImageView:create()
- self:addChild(imgFlag)
- end
-
- imgFlag:setVisible(isVisible)
- if not isVisible then
- imgFlag:setVisible(false)
- return
- end
- local imgPath = string.format("mj_huamajiang/res/zy_fangjian/card/flag_luobo/huamajiang_flag_luobo_%d.png", count)
- imgFlag:loadTexture(imgPath, 0)
- imgFlag:setName("img_luobo_flag")
- local cfg = nil
- local rotationCfg = nil
- if self._mjType == MJDefine.MJConfig_3d.MJType.Operate or self._mjType == MJDefine.MJConfig_3d.MJType.OperateBlack then
- cfg = MJDefine.MJConfig_3d.OpCardLuoBoFlagPos[viewId][groupIndex];
- rotationCfg = MJDefine.MJConfig_3d.OpCardLuoBoFlagScale[viewId][groupIndex]
- elseif self._mjType == MJDefine.MJConfig_3d.MJType.Open then
- cfg = MJDefine.MJConfig_3d.OpenCardLuoBoFlagPos[viewId][self._cardIndex]
- rotationCfg = MJDefine.MJConfig_3d.OpenCardLuoBoFlagScale[viewId][self._cardIndex]
- else
- cfg = MJDefine.HandCardLuoBoFlagPos[MJDefine.DesktopType.ThreeD][viewId];
- end
-
- if cfg then
- imgFlag:setPosition(cc.p(cfg.x, cfg.y));
- imgFlag:setScale(cfg.scale);
- end
-
- if rotationCfg then
- imgFlag:setEulerRotation(cc.vec3(rotationCfg.x, rotationCfg.y, rotationCfg.z))
- end
- end
- ---
- -- 刷新多头杠数量
- -- @param cardNum
- -- @return
- --
- function Card3D:refreshCardNum(cardNum, groupIndex)
- local viewId = self:getViewId()
- local imgFlag = self:getChildByName("img_cardnum_flag")
- if not imgFlag then
- imgFlag = cc.ImageView:create()
- self:addChild(imgFlag)
- end
- imgFlag:setVisible(cardNum > 4)
-
- if not (cardNum and cardNum > 4) then
- return
- end
-
- local imgPath = string.format("mj_huamajiang/res/zy_fangjian/card/flag_gang/huamajiang_flag_gang_%d.png", cardNum)
- imgFlag:loadTexture(imgPath, 0)
- imgFlag:setName("img_cardnum_flag")
- local cfg = nil
- local rotationCfg = nil
- if self._mjType == MJDefine.MJConfig_3d.MJType.Out then
- cfg = MJDefine.OutDuoGangFlagPos[MJDefine.DesktopType.ThreeD][viewId];
- cfg.x = cfg.pos.x
- cfg.y = cfg.pos.y
- else
- cfg = MJDefine.MJConfig_3d.OpDuoGangFlagPos[viewId][groupIndex];
- rotationCfg = MJDefine.MJConfig_3d.OpDuoGangFlagRotationConfig[viewId][groupIndex]
- end
-
- if cfg then
- imgFlag:setPosition(cc.p(cfg.x, cfg.y));
- imgFlag:setScale(cfg.scale);
- end
-
- if rotationCfg then
- imgFlag:setEulerRotation(cc.vec3(rotationCfg.x, rotationCfg.y, rotationCfg.z))
- end
- end
-
-
- function Card3D:initBackImage()
- if self._mjType == MJDefine.MJConfig_3d.MJType.Out and app.room:getMaxPlayerCount() == 2 then
- if self._cardIndex > 57 then
- if self._viewId == MJDefine.PlayerViewType.My then
- self._cardIndex = self._cardIndex - 19 * math.ceil((self._cardIndex - 57) / 19)
- elseif self._viewId == MJDefine.PlayerViewType.Top then
- self._cardIndex = self._cardIndex - 57
- end
-
- local scale = self._viewId == MJDefine.PlayerViewType.Top and 0.98 or 1.02
- self:setScale(scale)
- end
- local tpl = "mj_3d_outcard2_%s_%s.png"
- local imgName = string.format( tpl, self._viewType, self._cardIndex)
- local md5Name = MJFunction.get3dCardMd5ByName(imgName)
- if not md5Name then
- logD("[LUA ERROR] Card3D:initBackImage imgName:" .. imgName)
- return
- end
- self:loadTextureFromPlist(md5Name)
- else
- if self._mjType == MJDefine.MJConfig_3d.MJType.Out then
- if self._cardIndex > 33 then
- self._cardIndex = self._cardIndex - 11 * math.ceil((self._cardIndex - 33) / 11)
- end
- elseif self._mjType == MJDefine.MJConfig_3d.MJType.Hu or self._mjType == MJDefine.MJConfig_3d.MJType.HuBlack then
- if self._cardIndex > 40 then
- self._cardIndex = self._cardIndex - 20 * math.ceil((self._cardIndex - 40) / 20)
- end
- end
- local imgName = ""
- if self._mjType == MJDefine.MJConfig_3d.MJType.Stand then
- -- 本家手牌只有一张牌,cardIndex写死1
- local cardIndex = self._viewId == MJDefine.MyViewId and 1 or self._cardIndex
- local tpl = "mj_3d_handcard_%s_%s.png"
- imgName = string.format(tpl, self._viewType, cardIndex)
- elseif self._mjType == MJDefine.MJConfig_3d.MJType.Out then
- local tpl = "mj_3d_outcard_%s_%s.png"
- imgName = string.format( tpl, self._viewType, self._cardIndex)
- elseif self._mjType == MJDefine.MJConfig_3d.MJType.OutBlack then
-
- elseif self._mjType == MJDefine.MJConfig_3d.MJType.Operate then
- local tpl = "mj_3d_op_%s_fore_%s.png"
- imgName = string.format(tpl, self._viewType, self._cardIndex)
- elseif self._mjType == MJDefine.MJConfig_3d.MJType.OperateBlack then
- local tpl = "mj_3d_op_%s_back_%s.png"
- imgName = string.format(tpl, self._viewType, self._cardIndex)
- elseif self._mjType == MJDefine.MJConfig_3d.MJType.Hu then
- local tpl = "mj_3d_hu_%s_fore_%s.png"
- imgName = string.format(tpl, self._viewType, self._cardIndex)
- elseif self._mjType == MJDefine.MJConfig_3d.MJType.HuBlack then
- local tpl = "mj_3d_hu_%s_back_%s.png"
- imgName = string.format(tpl, self._viewType, self._cardIndex )
- elseif self._mjType == MJDefine.MJConfig_3d.MJType.Open then
- local tpl = "mj_3d_open_%s_fore_%s.png"
- imgName = string.format(tpl, self._viewType, self._cardIndex)
- elseif self._mjType == MJDefine.MJConfig_3d.MJType.OpenBlack then
- local tpl = "mj_3d_open_%s_back_%s.png"
- imgName = string.format(tpl, self._viewType, self._cardIndex)
- end
- local md5Name = MJFunction.get3dCardMd5ByName(imgName)
- if not md5Name then
- logD("[LUA ERROR] Mahjong3DCard:initBackImage imgName:" .. imgName)
- return
- end
- self:loadTextureFromPlist(md5Name)
- end
- end
-
- return Card3D
|