Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

85 wiersze
2.6 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 huamajiangChi = class("huamajiangChi", MJChi)
  6. function huamajiangChi:ctor(values,viewId,desktopType)
  7. self.values = values;
  8. self.viewId=viewId or MJDefine.PlayerViewType.My
  9. self.desktopType = desktopType or MJDefine.DesktopType.ThreeD
  10. self.mjs={}
  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 values[i] then
  20. mj=MJ:new(values[i],MJDefine.MJType.Operate,self.viewId,self.desktopType)
  21. self:addChild(mj)
  22. --self:setCardPos(mj,i)
  23. end
  24. local mjWidth=mj:getContentSize().width
  25. local mjHeight=mj:getContentSize().height
  26. --根据视图ID 计算坐标
  27. if self.viewId==MJDefine.PlayerViewType.My then
  28. -- x=#self.mjs*(mjWidth-MJDefine.MJGroupOffSet[self.viewId].x)+mjWidth/2
  29. width=width+mjWidth
  30. height=mj:getContentSize().height
  31. elseif self.viewId==MJDefine.PlayerViewType.Left then
  32. -- x=x-#self.mjs*MJDefine.MJGroupOffSet[self.viewId].x
  33. -- y=y+(mjHeight-MJDefine.MJGroupOffSet[self.viewId].y)*(3-i)
  34. width=mjWidth
  35. height=height+mjHeight
  36. if i<3 then
  37. height=height-MJGroupOffSet[self.viewId].y
  38. end
  39. elseif self.viewId==MJDefine.PlayerViewType.Right then
  40. -- x=x-#self.mjs*MJDefine.MJGroupOffSet[self.viewId].x
  41. -- y=y+(mjHeight-MJDefine.MJGroupOffSet[self.viewId].y)*#self.mjs
  42. width=mjWidth
  43. height=height+mjHeight
  44. if i<3 then
  45. height=height-MJGroupOffSet[self.viewId].y
  46. end
  47. mj:setLocalZOrder(3-i)
  48. elseif self.viewId==MJDefine.PlayerViewType.Top then
  49. -- local scale=1--0.8 --上面的麻将要缩小
  50. -- mj:setScale(scale)
  51. -- x=x*scale
  52. -- y=y*scale
  53. -- x=#self.mjs*(mjWidth*scale-MJDefine.MJGroupOffSet[self.viewId].x)+mjWidth*scale/2
  54. width=width+mjWidth
  55. height=mj:getContentSize().height
  56. end
  57. local x,y=MJPositionCompnent.getIntragroupPosition(self.viewId,mj,i,#self.mjs,self.desktopType)
  58. mj:setPosition(x,y)
  59. table.insert(self.mjs,mj)
  60. end
  61. self:setContentSize(cc.size(width,height))
  62. end
  63. function huamajiangChi:getCards()
  64. return self.mjs;
  65. end
  66. function huamajiangChi:getValues( )
  67. return self.values;
  68. end
  69. function huamajiangChi:refreshCardNum (mj, cardNum)
  70. mj:refreshCardNum(cardNum);
  71. self.cardNum = cardNum;
  72. end
  73. function huamajiangChi:getCardNum ()
  74. return self.cardNum or 0;
  75. end
  76. return huamajiangChi