25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
2.4 KiB

  1. local MJ = MJFramework.MJImport("mj.luaScript.Views.Game.MJ")
  2. local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
  3. local MJPositionCompnent=MJFramework.MJImport("mj.luaScript.Views.Compnent.MJPositionCompnent")
  4. local MJChi = MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Game.MJChi")
  5. local linshuiChi = class("linshuiChi", MJChi)
  6. function linshuiChi:ctor(values,viewId,desktopType,redNum)
  7. self.viewId=viewId or MJDefine.PlayerViewType.My
  8. self.desktopType = desktopType or MJDefine.DesktopType.ThreeD
  9. self.mjs={}
  10. redNum = redNum or 0
  11. local MJGroupOffSet=MJDefine.MJGroupOffSet[desktopType]
  12. -- local x=0
  13. -- local y=0
  14. --计算整个组牌的宽高
  15. local width=0
  16. local height=0
  17. for i=1,3 do
  18. local mj
  19. if redNum > 0 and i <= redNum then
  20. mj = MJ:new(65,MJDefine.MJType.Operate,self.viewId,self.desktopType)
  21. self:addChild(mj)
  22. elseif values[i] then
  23. mj=MJ:new(values[i],MJDefine.MJType.Operate,self.viewId,self.desktopType)
  24. self:addChild(mj)
  25. --self:setCardPos(mj,i)
  26. end
  27. local mjWidth=mj:getContentSize().width
  28. local mjHeight=mj:getContentSize().height
  29. --根据视图ID 计算坐标
  30. if self.viewId==MJDefine.PlayerViewType.My then
  31. -- x=#self.mjs*(mjWidth-MJDefine.MJGroupOffSet[self.viewId].x)+mjWidth/2
  32. width=width+mjWidth
  33. height=mj:getContentSize().height
  34. elseif self.viewId==MJDefine.PlayerViewType.Left then
  35. -- x=x-#self.mjs*MJDefine.MJGroupOffSet[self.viewId].x
  36. -- y=y+(mjHeight-MJDefine.MJGroupOffSet[self.viewId].y)*(3-i)
  37. width=mjWidth
  38. height=height+mjHeight
  39. if i<3 then
  40. height=height-MJGroupOffSet[self.viewId].y
  41. end
  42. elseif self.viewId==MJDefine.PlayerViewType.Right then
  43. -- x=x-#self.mjs*MJDefine.MJGroupOffSet[self.viewId].x
  44. -- y=y+(mjHeight-MJDefine.MJGroupOffSet[self.viewId].y)*#self.mjs
  45. width=mjWidth
  46. height=height+mjHeight
  47. if i<3 then
  48. height=height-MJGroupOffSet[self.viewId].y
  49. end
  50. mj:setLocalZOrder(3-i)
  51. elseif self.viewId==MJDefine.PlayerViewType.Top then
  52. -- local scale=1--0.8 --上面的麻将要缩小
  53. -- mj:setScale(scale)
  54. -- x=x*scale
  55. -- y=y*scale
  56. -- x=#self.mjs*(mjWidth*scale-MJDefine.MJGroupOffSet[self.viewId].x)+mjWidth*scale/2
  57. width=width+mjWidth
  58. height=mj:getContentSize().height
  59. end
  60. local x,y=MJPositionCompnent.getIntragroupPosition(self.viewId,mj,i,#self.mjs,self.desktopType)
  61. mj:setPosition(x,y)
  62. table.insert(self.mjs,mj)
  63. end
  64. self:setContentSize(cc.size(width,height))
  65. end
  66. return linshuiChi