|
- 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 = class("MJChi",function()
- local node=cc.Layer:create()--Color:create(cc.c4b(255,0,0,255)) --------
- node:setAnchorPoint(cc.p(0.5,0.5))
- node:ignoreAnchorPointForPosition(false)
- return node
- end)
-
- function MJChi:ctor(values,viewId,desktopType)
- self.viewId=viewId or MJDefine.PlayerViewType.My
- self.desktopType = desktopType
- self.mjs={}
-
- desktopType=desktopType or MJDefine.DesktopType.ThreeD
- local MJGroupOffSet=MJDefine.MJGroupOffSet[desktopType]
-
- -- local x=0
- -- local y=0
- --计算整个组牌的宽高
- local width=0
- local height=0
- for i=1,3 do
- if values[i] then
- local mj=MJ:new(values[i],MJDefine.MJType.Operate,self.viewId,desktopType)
- self:addChild(mj)
-
- local mjWidth=mj:getContentSize().width
- local mjHeight=mj:getContentSize().height
- -- y=mjHeight/2
- -- x=mjWidth/2
-
- --根据视图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,desktopType)
- mj:setPosition(x,y)
- table.insert(self.mjs,mj)
- end
- end
-
- self:setContentSize(cc.size(width,height))
- end
-
- function MJChi:setDirection(viewId,fromViewId)--原图方向朝上
- if not viewId then return end
- if not fromViewId then return end
- if viewId == fromViewId then return end
- local arrowDir = {
- [MJDefine.PlayerViewType.Right] = 270,
- [MJDefine.PlayerViewType.Top] = 0,
- [MJDefine.PlayerViewType.Left] = 90,
- [MJDefine.PlayerViewType.My] = 180,
- }
- if fromViewId and arrowDir[fromViewId] then
- local csize = self:getContentSize()
-
- local imgPos2d = {
- [MJDefine.PlayerViewType.Right] = cc.p(csize.width+13,csize.height/2+8),
- [MJDefine.PlayerViewType.Top] = cc.p(csize.width/2-3,0-10),
- [MJDefine.PlayerViewType.Left] = cc.p(0-13,csize.height/2+8),
- [MJDefine.PlayerViewType.My] = cc.p(csize.width/2-3,csize.height+17),
- }
-
- local imgPos2dGold = {
- [MJDefine.PlayerViewType.Right] = cc.p(csize.width+15,csize.height/2+8),
- [MJDefine.PlayerViewType.Top] = cc.p(csize.width/2-3,0-10),
- [MJDefine.PlayerViewType.Left] = cc.p(0-13,csize.height/2+8),
- [MJDefine.PlayerViewType.My] = cc.p(csize.width/2-3,csize.height+17),
- }
-
- local imgPos3d = {
- [MJDefine.PlayerViewType.Right] = cc.p(csize.width+2,csize.height/2+8),
- [MJDefine.PlayerViewType.Top] = cc.p(csize.width/2-3,0-8),
- [MJDefine.PlayerViewType.Left] = cc.p(0-15,csize.height/2+11),
- [MJDefine.PlayerViewType.My] = cc.p(csize.width/2-3,csize.height+17),
- }
-
- local arrowImg = cc.ImageView:createNode()
- arrowImg:loadTextureFromPlist("mj_room_cpg_direction.png");
- arrowImg:setEulerRotation(cc.vec3(0,0,arrowDir[fromViewId]))
- if self.desktopType == "2d" then
- --2d墨绿
- if viewId == MJDefine.PlayerViewType.Left then
- arrowImg:setScale(0.8)
- elseif viewId == MJDefine.PlayerViewType.Top then
- arrowImg:setScale(0.8)
- elseif viewId == MJDefine.PlayerViewType.Right then
- arrowImg:setScale(0.8)
- end
- arrowImg:setPosition(imgPos2d[viewId])
- elseif self.desktopType == "2dGold" then
- --2d金黄
- if viewId == MJDefine.PlayerViewType.Left then
- arrowImg:setScale(0.8)
- elseif viewId == MJDefine.PlayerViewType.Top then
- arrowImg:setScale(0.8)
- elseif viewId == MJDefine.PlayerViewType.Right then
- arrowImg:setScale(0.8)
- end
- arrowImg:setPosition(imgPos2dGold[viewId])
- else
- --3d
- if viewId == MJDefine.PlayerViewType.Left then
- arrowImg:setScale(0.8)
- elseif viewId == MJDefine.PlayerViewType.Top then
- arrowImg:setScale(0.8)
- elseif viewId == MJDefine.PlayerViewType.Right then
- arrowImg:setScale(0.8)
- end
- arrowImg:setPosition(imgPos3d[viewId])
- end
- self:addChild(arrowImg,2,2)
- end
- end
-
- return MJChi
|