選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

83 行
3.1 KiB

  1. local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
  2. local MJ=MJFramework.MJImport("mj.luaScript.Views.Game.MJ")
  3. local huamajiangFanLuoBoView = class("huamajiangFanLuoBoView", cc.UIView);
  4. function huamajiangFanLuoBoView:ctor (desktopType)
  5. huamajiangFanLuoBoView.super.ctor(self);
  6. self.desktopType = MJDefine.DesktopType.TwoD;
  7. self:loadUI();
  8. end
  9. function huamajiangFanLuoBoView:onEnter ()
  10. huamajiangFanLuoBoView.super.onEnter(self);
  11. self:initViews();
  12. end
  13. function huamajiangFanLuoBoView:loadUI( )
  14. local ui = loadUI("mj_huamajiang/res/ui_fangjian/mj_huamajiang_fanluobo.ui");
  15. self.ui = ui;
  16. self:addChild(ui);
  17. end
  18. function huamajiangFanLuoBoView:initViews ()
  19. self.ui.Items.Layout_LuoBoCards:setTouchEnabled(true);
  20. end
  21. function huamajiangFanLuoBoView:setCards (cards)
  22. self:clearCards();
  23. local layoutCards = self.ui.Items.Layout_LuoBoCards;
  24. for k, v in ipairs(cards or {}) do
  25. local card = self:createCard(k, v, false, table.nums(cards));
  26. local cardBlack = self:createCard(k, v, true, table.nums(cards));
  27. layoutCards:addChild(card);
  28. layoutCards:addChild(cardBlack);
  29. end
  30. self:startOpenCard();
  31. end
  32. function huamajiangFanLuoBoView:startOpenCard ()
  33. local layoutCards = self.ui.Items.Layout_LuoBoCards;
  34. local num = layoutCards:getChildrenCount()
  35. for i = 1, num do
  36. local card = layoutCards:getChildByName("card_" .. i);
  37. local cardBlack = layoutCards:getChildByName("card_black_" .. i);
  38. if card and cardBlack then
  39. card:setScale(cc.p(0, 1.7));
  40. local acScaleBlack = cc.ScaleTo:create(0.1, 0, 1.7, 1);
  41. local acScaleBlackCb = cc.CallFunc:create(function ()
  42. local acScale = cc.ScaleTo:create(0.1, 1.7, 1.7, 1);
  43. local acCallFunc = cc.CallFunc:create(function ()
  44. self:runDelay(1.0, function ()
  45. self:setVisible(false);
  46. self:clearCards();
  47. end);
  48. end);
  49. card:runAction(cc.Sequence:create(acScale, acCallFunc));
  50. end);
  51. cardBlack:runAction(cc.Sequence:create(acScaleBlack, acScaleBlackCb));
  52. end
  53. end
  54. end
  55. function huamajiangFanLuoBoView:createCard (index, card, isBlack, count)
  56. local mjType = isBlack and MJDefine.MJType.OutBlack or MJDefine.MJType.Operate;
  57. local cardName = isBlack and string.format("card_black_%s", index) or string.format("card_%s", index);
  58. local card = MJ:new(card, mjType, MJDefine.PlayerViewType.My, self.desktopType);
  59. local scale = 1.7;
  60. local layoutWidth = 200;
  61. local w = card:getContentSize().width * scale;
  62. -- local x = layoutWidth / 2 + (index - 1) * (w + 40) - (w + 40) * count / 2 + (w + 40) / 2;
  63. local x = layoutWidth / 2 + (index - 1) * (w + 40) - (w + 40) * (count - 1) / 2;
  64. card:setAnchorPoint(cc.p(0.5, 0.5));
  65. card:setPositionX(x);
  66. card:setScale(scale);
  67. card:setName(cardName);
  68. return card;
  69. end
  70. function huamajiangFanLuoBoView:clearCards( )
  71. self.ui.Items.Layout_LuoBoCards:removeAllChildren();
  72. end
  73. return huamajiangFanLuoBoView;