|
- local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
- local MJ = class("MJ",function()
- local node=cc.ImageView:create()--cc.LayerColor:create(cc.c4b(255,0,0,255))
- --node:setAnchorPoint(cc.p(0.5,0.5))
- --node:ignoreAnchorPointForPosition(false)
- return node
- end)
-
- local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
-
-
- --触摸牌Y的偏移量
- local MJ_HAND_CARD_TOUCH_Y=20
- local MJ_HAND_CARD_FLAG_TING=150
- MJ.MJ_HAND_CARD_FLAG_LAIZI=151--癞子标志
- local DEF_PAO_FLAG = 9000
-
- function MJ:ctor(value,mjType,viewId,desktopType)
-
- self.value=value
-
- self:initSortValue(value)
-
- self.viewId=viewId
-
- self.status=MJDefine.MJStatus.Normal --默认麻将状态
-
- self.newValue=string.format("%x",value)--MJDefine.getMjValue(value)
-
- self.desktopType=desktopType or MJDefine.DesktopType.ThreeD
-
- -- self.initPostion=self:getPosition()
- self:recordPostion()
-
- if mjType==MJDefine.MJType.Stand then
- self:setStandImage(self.newValue,viewId)
- elseif mjType==MJDefine.MJType.Out then
- if value==0 then
- self:setOutBlackImage(self.newValue,viewId)
- else
- self:setOutImage(self.newValue,viewId)
- end
- elseif mjType==MJDefine.MJType.OutBlack then
- self:setOutBlackImage(self.newValue,viewId)
- elseif mjType==MJDefine.MJType.Operate then
- if value==0 then
- self:setOutBlackImage(self.newValue,viewId)
- else
- self:setOperateImage(self.newValue,viewId)
- end
- end
- end
-
- function MJ:initSortValue(value)
- self.sortValue=value
- end
- --获取花色 0万1同2条
- function MJ:getMJColorType()
- return math.floor(self.value/16)
- end
-
- function MJ:setStatus(s)
- self.status=s
- if s==MJDefine.MJStatus.Select then
- self:setColor(cc.c3b(220, 220, 220))
- elseif s==MJDefine.MJStatus.Disable then
- self:setColor(cc.c3b(150,150,150))
- else
- self:setColor(cc.c3b(255,255,255))
- end
- end
-
- function MJ:getStatus()
- return self.status
- end
-
- function MJ:setSelected(s)
- self.selected=s
- end
-
- function MJ:getSelected()
- return self.selected
- end
-
- function MJ:setTing(b)
- if b then
- local falg=cc.Sprite:createWithSpriteFrameName("mj_img_ting_flag.png")
- falg:setScale(0.7)
- falg:setTag(MJ_HAND_CARD_FLAG_TING)
- self:addChild(falg)
- falg:setPosition(self:getContentSize().width/2,self:getContentSize().height+5)
- else
-
- self:removeChildByTag(MJ_HAND_CARD_FLAG_TING)
-
- end
- end
-
- function MJ:getTing()
- local tingFlag = self:getChildByTag(MJ_HAND_CARD_FLAG_TING)
- if tingFlag and (not tolua.isnull(tingFlag)) and tingFlag:isVisible() then
- return true
- else
- return false
- end
- end
-
- function MJ:recordPostion(pos)
- if pos then
- self.initPostion = pos
- else
- self.initPostion = self:getPosition()
- end
- -- self.initPostion.y = initY or 64
- end
-
- function MJ:restorePostion(isAnim)
- -- dump(self.initPostion,"restorePostion")
- if isAnim then
- self:stopAllActions()
- self:runAction(cc.MoveTo:create(0.1,self.initPostion))
- else
-
- self:setPosition(self.initPostion)
- end
- end
-
- -- function MJ:runSelectAnimation()
- -- if self.status==MJDefine.MJStatus.Normal then
- -- self:runAction(cc.MoveBy:create(0.1,cc.p(0,MJ_HAND_CARD_TOUCH_Y)))
- -- end
- -- end
-
- -- function MJ:runDeSelectAnimation()
- -- if self.status==MJDefine.MJStatus.Select then
- -- print("self.newValue:"..self.newValue)
- -- self:runAction(cc.MoveBy:create(0.1,cc.p(0,-MJ_HAND_CARD_TOUCH_Y)))
- -- end
- -- end
-
- -- 确保动画结束后回到原来的位置
- function MJ:runSelectAnimation()
- if self.status==MJDefine.MJStatus.Normal then
- local initPos = self.initPostion
- local toPos = cc.p(initPos.x, initPos.y + MJ_HAND_CARD_TOUCH_Y)
- self:stopAllActions()
- -- self:setPosition(toPos)
- self:runAction(cc.MoveTo:create(0.1, toPos))
- end
- end
-
- -- 确保动画结束后回到原来的位置
- function MJ:runDeSelectAnimation()
- -- dump(self.initPostion,"runDeSelectAnimation")
- -- if self.status==MJDefine.MJStatus.Select then
- self:stopAllActions()
- -- self:runAction(cc.MoveTo:create(0.1, self.initPostion))
- -- dump(self.initPostion,"runDeSelectAnimation")
- self:setPosition(self.initPostion)
- -- end
- end
-
- -- 确保动画结束后回到原来的位置
- function MJ:runDeSelectAnimationWithTime(time)
- -- dump(self.initPostion,"runDeSelectAnimation")
- time = time or 0.1
- if self.status==MJDefine.MJStatus.Select or self.selected==MJDefine.MJStatus.Select then
- self:stopAllActions()
- self:runAction(cc.MoveTo:create(time, self.initPostion))
- -- dump(self.initPostion,"runDeSelectAnimation")
- --self:setPosition(self.initPostion)
- end
- end
-
- function MJ:setStandImage(value,viewId)
- local imgName--=string.format("handCards/mj_handcard_%d.png",value)
- local MJStandImage=MJDefine.MJStandImage[self.desktopType]--[viewId]
- if viewId==MJDefine.PlayerViewType.My then
- imgName=string.format(MJStandImage[viewId],value)--string.format("handCards/mj_handcard_%d.png",value)
- -- elseif viewId==MJDefine.PlayerViewType.Left then
- -- imgName="other/mj_stand_left.png"
- -- elseif viewId==MJDefine.PlayerViewType.Right then
- -- imgName="other/mj_stand_left.png"
- -- self:setFlippedX(true)
- -- elseif viewId==MJDefine.PlayerViewType.Top then
- -- imgName="other/mj_stand_top.png"
- else
- imgName=MJStandImage[viewId]
- if viewId==MJDefine.PlayerViewType.Right then
- self:setFlippedX(true)
- end
- end
- -- self:setSpriteFrame(imgName)
- self:loadTexture(imgName,cc.TextureResType.plistType)
- end
-
- function MJ:setOutImage(value,viewId)
- local MJOutImage=MJDefine.MJOutImage[self.desktopType]
- local imgName=string.format(MJOutImage[viewId],value)
- -- string.format("outCards/my/mj_outcard_my_%d.png",value)
-
- -- if viewId==MJDefine.PlayerViewType.My then
-
- -- elseif viewId==MJDefine.PlayerViewType.Left then
- -- imgName=string.format("outCards/left/mj_outcard_left_%d.png",value)
- -- elseif viewId==MJDefine.PlayerViewType.Right then
- -- imgName=string.format("outCards/right/mj_outcard_right_%d.png",value)
- -- elseif viewId==MJDefine.PlayerViewType.Top then
- -- imgName=string.format("outCards/top/mj_outcard_top_%d.png",value)
- -- end
-
- -- self:setSpriteFrame(imgName)
- self:loadTexture(imgName,cc.TextureResType.plistType)
- if viewId==MJDefine.PlayerViewType.My then
- -- self:setScale(47/self:getContentSize().width)
- if self.desktopType == MJDefine.DesktopType.TwoDGold then
- self:setAutoSize(false)
- self:setSize(cc.size(36,55))
- elseif self.desktopType == MJDefine.DesktopType.TwoD or self.desktopType == MJDefine.DesktopType.TwoDL then
- self:setAutoSize(false)
- self:setSize(cc.size(47,72))
- end
- end
- end
-
- function MJ:setOperateImage(value,viewId)
- local MJOperateGroupImage=MJDefine.MJOperateGroupImage[self.desktopType]
- local imgName=string.format(MJOperateGroupImage[viewId],value)--string.format("outCards/my/mj_outcard_my_%d.png",value)
-
- -- if viewId==MJDefine.PlayerViewType.My then
-
- -- elseif viewId==MJDefine.PlayerViewType.Left then
- -- imgName=string.format("operateCards/left/mj_opcard_left_%d.png",value)
- -- elseif viewId==MJDefine.PlayerViewType.Right then
- -- imgName=string.format("operateCards/right/mj_opcard_right_%d.png",value)
- -- elseif viewId==MJDefine.PlayerViewType.Top then
- -- imgName=string.format("outCards/top/mj_outcard_top_%d.png",value)
- -- end
-
- -- self:setSpriteFrame(imgName)
- self:loadTexture(imgName,cc.TextureResType.plistType)
- end
-
- function MJ:setOutBlackImage(value,viewId)
- local MJOutBlackImage=MJDefine.MJOutBlackImage[self.desktopType]
- local imgName=string.format(MJOutBlackImage[viewId],value)--"other/mj_lie_down.png"
-
- --local sprite=cc.Sprite:create()
-
- -- if viewId==MJDefine.PlayerViewType.My then
-
- -- elseif viewId==MJDefine.PlayerViewType.Left then
- -- imgName="other/mj_lie_left.png"
- -- elseif viewId==MJDefine.PlayerViewType.Right then
- -- imgName="other/mj_lie_right.png"
- -- -- self:setFlippedX(true)
- -- elseif viewId==MJDefine.PlayerViewType.Top then
- -- imgName="other/mj_lie_top.png"
- -- end
- -- self:setSpriteFrame(imgName)
- self:loadTexture(imgName,cc.TextureResType.plistType)
- end
-
- function MJ:setPaoFlag(isPaoCard)
- if isPaoCard and true == isPaoCard then
- if self:getIsPaoPai() then return end--本来就是炮牌,直接return
- local flag = cc.Sprite:create("mj/res/ui/zy_fangjian/room/mj_flag_pao.png")
- flag:setTag(DEF_PAO_FLAG)
- self:addChild(flag)
- if self.desktopType == MJDefine.DesktopType.TwoDGold then
- flag:setPosition(cc.p(16,40))
- else
- flag:setPosition(cc.p(16,55))
- end
- else
- local flag = self:getChildByTag(DEF_PAO_FLAG)
- if flag and (not tolua.isnull(flag)) then
- flag:removeFromParent()
- flag = nil
- end
- end
- end
-
- function MJ:getIsPaoPai()
- local flag = self:getChildByTag(DEF_PAO_FLAG)
- if flag and (not tolua.isnull(flag)) and flag:isVisible() then
- return true
- end
- return false
- end
-
- return MJ
|