|
- local MJ = MJFramework.MJImport("mj.luaScript.Views.Game.MJ")
- local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
- local MJPositionCompnent=MJFramework.MJImport("mj.luaScript.Views.Compnent.MJPositionCompnent")
- local MJChi = MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Game.MJChi")
- local zigongChi = class("zigongChi", MJChi)
-
- function zigongChi:ctor(values,viewId,desktopType,redNum)
- self.viewId=viewId or MJDefine.PlayerViewType.My
- self.desktopType = desktopType or MJDefine.DesktopType.ThreeD
- self.mjs={}
- redNum = redNum or 0
- local MJGroupOffSet=MJDefine.MJGroupOffSet[desktopType]
-
- -- local x=0
- -- local y=0
- --计算整个组牌的宽高
- local width=0
- local height=0
- for i=1,3 do
- local mj
- if redNum > 0 and i <= redNum then
- mj = MJ:new(65,MJDefine.MJType.Operate,self.viewId,self.desktopType)
- self:addChild(mj)
- elseif values[i] then
- mj=MJ:new(values[i],MJDefine.MJType.Operate,self.viewId,self.desktopType)
- self:addChild(mj)
- --self:setCardPos(mj,i)
- end
- local mjWidth=mj:getContentSize().width
- local mjHeight=mj:getContentSize().height
-
- --根据视图ID 计算坐标
- if self.viewId==MJDefine.PlayerViewType.My then
- -- x=#self.mjs*(mjWidth-MJDefine.MJGroupOffSet[self.viewId].x)+mjWidth/2
- width=width+mjWidth
- height=mj:getContentSize().height
- elseif self.viewId==MJDefine.PlayerViewType.Left then
- -- x=x-#self.mjs*MJDefine.MJGroupOffSet[self.viewId].x
- -- y=y+(mjHeight-MJDefine.MJGroupOffSet[self.viewId].y)*(3-i)
- width=mjWidth
- height=height+mjHeight
- if i<3 then
- height=height-MJGroupOffSet[self.viewId].y
- end
- elseif self.viewId==MJDefine.PlayerViewType.Right then
- -- x=x-#self.mjs*MJDefine.MJGroupOffSet[self.viewId].x
- -- y=y+(mjHeight-MJDefine.MJGroupOffSet[self.viewId].y)*#self.mjs
- width=mjWidth
- height=height+mjHeight
- if i<3 then
- height=height-MJGroupOffSet[self.viewId].y
- end
- mj:setLocalZOrder(3-i)
- elseif self.viewId==MJDefine.PlayerViewType.Top then
- -- local scale=1--0.8 --上面的麻将要缩小
- -- mj:setScale(scale)
- -- x=x*scale
- -- y=y*scale
- -- x=#self.mjs*(mjWidth*scale-MJDefine.MJGroupOffSet[self.viewId].x)+mjWidth*scale/2
- width=width+mjWidth
- height=mj:getContentSize().height
- end
- local x,y=MJPositionCompnent.getIntragroupPosition(self.viewId,mj,i,#self.mjs,self.desktopType)
- mj:setPosition(x,y)
- table.insert(self.mjs,mj)
- end
-
- self:setContentSize(cc.size(width,height))
- end
-
- function zigongChi:showRedNum(super,redNum)
- if redNum > 0 then
- local pos = super:getPosition()
- local sprite
- if self.viewId==MJDefine.PlayerViewType.My then
- sprite = cc.Sprite:createWithSpriteFrameName("zg_room_myRedNum.png")
- sprite:setPosition(pos.x+5,pos.y+25)
- elseif self.viewId==MJDefine.PlayerViewType.Left then
- sprite = cc.Sprite:createWithSpriteFrameName("zg_room_myRedNum.png")
- sprite:setPosition(pos.x+super:getContentSize().width+10,pos.y-35)
- elseif self.viewId==MJDefine.PlayerViewType.Right then
- sprite = cc.Sprite:createWithSpriteFrameName("zg_room_otherRedNum.png")
- sprite:setPosition(pos.x-super:getContentSize().width+3,pos.y-super:getContentSize().height-8)
- elseif self.viewId==MJDefine.PlayerViewType.Top then
- sprite = cc.Sprite:createWithSpriteFrameName("zg_room_otherRedNum.png")
- sprite:setPosition(pos.x-super:getContentSize().width*2,pos.y-super:getContentSize().height-5)
- end
- super:addChild(sprite,3)
-
- local num = cc.Text:createNode()
- num:setDefaults()
- local config = num:getFontConfig()
- config.fontSize = 22
- config.texColor = cc.c4b(213,46,11,255)
- num:setFontConfig(config)
- num:setAnchorPoint(cc.p(0.5,0.5))
- sprite:addChild(num)
- num:setPosition(cc.p(sprite:getContentSize().width/2,sprite:getContentSize().height/2))
- num:setString(string.format("%d中", redNum))
- end
-
- end
-
- return zigongChi
|