You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
3.8 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 xcmajChi = class("xcmajChi", MJChi)
  6. function xcmajChi: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. function xcmajChi:showRedNum(super,redNum)
  67. do return end
  68. if redNum > 0 then
  69. local pos = super:getPosition()
  70. local sprite
  71. if self.viewId==MJDefine.PlayerViewType.My then
  72. sprite = cc.Sprite:createWithSpriteFrameName("zg_room_myRedNum.png")
  73. sprite:setPosition(pos.x+5,pos.y+25)
  74. elseif self.viewId==MJDefine.PlayerViewType.Left then
  75. sprite = cc.Sprite:createWithSpriteFrameName("zg_room_myRedNum.png")
  76. sprite:setPosition(pos.x+super:getContentSize().width+10,pos.y-35)
  77. elseif self.viewId==MJDefine.PlayerViewType.Right then
  78. sprite = cc.Sprite:createWithSpriteFrameName("zg_room_otherRedNum.png")
  79. sprite:setPosition(pos.x-super:getContentSize().width+3,pos.y-super:getContentSize().height-8)
  80. elseif self.viewId==MJDefine.PlayerViewType.Top then
  81. sprite = cc.Sprite:createWithSpriteFrameName("zg_room_otherRedNum.png")
  82. sprite:setPosition(pos.x-super:getContentSize().width*2,pos.y-super:getContentSize().height-5)
  83. end
  84. super:addChild(sprite,3)
  85. local num = cc.Text:createNode()
  86. num:setDefaults()
  87. local config = num:getFontConfig()
  88. config.fontSize = 22
  89. config.texColor = cc.c4b(213,46,11,255)
  90. num:setFontConfig(config)
  91. num:setAnchorPoint(cc.p(0.5,0.5))
  92. sprite:addChild(num)
  93. num:setPosition(cc.p(sprite:getContentSize().width/2,sprite:getContentSize().height/2))
  94. num:setString(string.format("%d中", redNum))
  95. end
  96. end
  97. return xcmajChi