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 zigong7zChi = class("zigong7zChi", MJChi) function zigong7zChi: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 zigong7zChi: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 zigong7zChi