Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

449 linhas
14 KiB

  1. local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
  2. local MJ=MJFramework.MJImport("mj.luaScript.Views.Game.MJ")
  3. local zigongAnimationCompnent = MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Compnent.MJAnimationCompnent")
  4. local OperateName = {
  5. [MJDefine.MJOperateType.OPREATE_PENG] = 'peng',
  6. [MJDefine.MJOperateType.OPREATE_ZHIGANG] = 'gang',
  7. [MJDefine.MJOperateType.OPREATE_BAGANG] = 'gang',
  8. [MJDefine.MJOperateType.OPREATE_ANGANG] = 'gang',
  9. [MJDefine.MJOperateType.OPREATE_DIANPAOHU] = 'hu',
  10. [MJDefine.MJOperateType.OPREATE_ZIMOHU] = 'zimo',
  11. [MJDefine.MJOperateType.OPREATE_QIANG_GANG_HU] = 'hu',
  12. }
  13. -- 操作动画
  14. function zigongAnimationCompnent.CreateOperareEffect(opType,callback)
  15. local node = cc.Node:create()
  16. local PathStr = 'mj_zigong7z/res/zy_fangjian/operateAni/zigong_operateAni_%s_%s.png'
  17. local PathOperateAni = string.format(PathStr, OperateName[opType], 1)
  18. print('jxjx PathOperateAni->', PathOperateAni)
  19. local sprite = cc.Sprite:create(PathOperateAni)
  20. local spriteSize = sprite:getContentSize()
  21. sprite:setScale(1.8)
  22. node:addChild(sprite)
  23. -- 背景光动画
  24. local action1 = {
  25. cc.Spawn:create({
  26. cc.ScaleTo:create(0.3, 1.05),
  27. cc.FadeTo:create(0.3, 200),
  28. }),
  29. cc.FadeTo:create(0.3, 0),
  30. }
  31. local seq1 = cc.Sequence:create(action1)
  32. -- 字动画
  33. local PathOperateAni2 = string.format(PathStr, OperateName[opType], 2)
  34. print('jxjx PathOperateAni2->', PathOperateAni2)
  35. local sprite2 = cc.Sprite:create(PathOperateAni2)
  36. node:addChild(sprite2)
  37. sprite2:setVisible(false)
  38. local action2 = {
  39. cc.DelayTime:create(0.3),
  40. cc.CallFunc:create(function()
  41. sprite2:setVisible(true)
  42. end),
  43. cc.DelayTime:create(1), -- 若秒后移除
  44. cc.CallFunc:create(function()
  45. if callback then
  46. callback()
  47. end
  48. node:removeFromParent()
  49. end),
  50. }
  51. local seq2 = cc.Sequence:create(action2)
  52. local spa = cc.Spawn:create(seq1, seq2) -- 总动画
  53. sprite:runAction(spa)
  54. return node
  55. end
  56. -- 胡动画
  57. function zigongAnimationCompnent.CreateHuEffect(huType,callback)
  58. local temp = {
  59. [MJDefine.MJGameHuType.HU_ZIMO] = MJDefine.MJOperateType.OPREATE_ZIMOHU,
  60. [MJDefine.MJGameHuType.HU_DIANPAO] = MJDefine.MJOperateType.OPREATE_DIANPAOHU,
  61. [MJDefine.MJGameHuType.HU_QIANGGANG] = MJDefine.MJOperateType.OPREATE_QIANG_GANG_HU,
  62. }
  63. return zigongAnimationCompnent.CreateOperareEffect(temp[huType],callback)
  64. --[[
  65. local sprite
  66. if huType == MJDefine.MJGameHuType.HU_ZIMO then
  67. sprite=cc.Sprite:create(zigongAnimationCompnent.effect[MJDefine.MJOperateType.OPREATE_ZIMOHU])
  68. elseif huType == MJDefine.MJGameHuType.HU_QIANGGANG then
  69. sprite=cc.Sprite:create(zigongAnimationCompnent.effect[MJDefine.MJOperateType.OPREATE_QIANG_GANG_HU])
  70. else
  71. sprite=cc.Sprite:create(zigongAnimationCompnent.effect[MJDefine.MJOperateType.OPREATE_DIANPAOHU])
  72. end
  73. -- local bg = cc.Sprite:create("mj/res/ui/zy_fangjian/operate/mj_effect_text_bg.png")
  74. -- sprite:addChild(bg,-1)
  75. -- local size= sprite:getContentSize()
  76. -- bg:setPosition(cc.p(size.width/2,size.height/2))
  77. sprite:setOpacity(150)
  78. sprite:setScale(0.5)
  79. local action={
  80. cc.Spawn:create(cc.EaseBackOut:create(cc.ScaleTo:create(0.2,1)),cc.FadeTo:create(0.2,255)),
  81. cc.DelayTime:create(0.2),
  82. cc.Spawn:create(cc.EaseBackIn:create(cc.ScaleTo:create(0.2,0)),cc.FadeTo:create(0.2,100)),
  83. cc.RemoveSelf:create(),
  84. cc.CallFunc:create(function()
  85. if callback then
  86. callback()
  87. end
  88. end),
  89. }
  90. sprite:runAction(cc.Sequence:create(action))
  91. return sprite
  92. ]]
  93. end
  94. function zigongAnimationCompnent.CreateHuOrderEffect(huType,order,callback)
  95. local temp = {
  96. [1] = "mj/res/ui/zy_fangjian/operate/mj_effect_num1.png",
  97. [2] = "mj/res/ui/zy_fangjian/operate/mj_effect_num2.png",
  98. [3] = "mj/res/ui/zy_fangjian/operate/mj_effect_num3.png",
  99. [4] = "mj_zigong7z/res/zy_fangjian/zigong_num_4.png",
  100. [5] = "mj_zigong7z/res/zy_fangjian/zigong_num_5.png",
  101. }
  102. local orderNum = cc.Sprite:create(temp[order])
  103. local sprite = nil
  104. if huType == MJDefine.MJGameHuType.HU_ZIMO then
  105. sprite=cc.Sprite:create(zigongAnimationCompnent.effect[MJDefine.MJOperateType.OPREATE_ZIMOHU])
  106. orderNum:setPosition(cc.p(260,65))
  107. else
  108. sprite=cc.Sprite:create("mj/res/ui/zy_fangjian/operate/mj_effect_jiepao.png")
  109. orderNum:setPosition(cc.p(300,65))
  110. end
  111. sprite:addChild(orderNum)
  112. local bg = cc.Sprite:create("mj/res/ui/zy_fangjian/operate/mj_effect_text_bg.png")
  113. sprite:addChild(bg,-1)
  114. local size= sprite:getContentSize()
  115. bg:setPosition(cc.p(size.width/2,size.height/2))
  116. sprite:setScale(0.5)
  117. local action={
  118. cc.DelayTime:create(0.2),
  119. cc.CallFunc:create(function()
  120. if callback then
  121. callback()
  122. end
  123. end),
  124. }
  125. sprite:runAction(cc.Sequence:create(action))
  126. return sprite
  127. end
  128. -- 爆牌
  129. function zigongAnimationCompnent.CreateBaoEffect(callback)
  130. local sprite = cc.Sprite:create("mj/res/ui/zy_fangjian/operate/mj_effect_baojiao.png")
  131. -- sprite:loadTexture("luzhou_effect_img_bao.png", 1)
  132. sprite:setOpacity(150)
  133. sprite:setScale(0.5)
  134. local bg = cc.Sprite:create("mj/res/ui/zy_fangjian/operate/mj_effect_text_bg.png")
  135. sprite:addChild(bg,-1)
  136. local size= sprite:getContentSize()
  137. bg:setPosition(cc.p(size.width/2,size.height/2))
  138. local action = {
  139. cc.Spawn:create(cc.EaseBackOut:create(cc.ScaleTo:create(0.2,1)),cc.FadeTo:create(0.2,255)),
  140. cc.DelayTime:create(0.2),
  141. cc.Spawn:create(cc.EaseBackIn:create(cc.ScaleTo:create(0.2,0)),cc.FadeTo:create(0.2,100)),
  142. cc.CallFunc:create(function()
  143. if callback then
  144. callback()
  145. end
  146. end),
  147. cc.RemoveSelf:create(),
  148. }
  149. sprite:runAction(cc.Sequence:create(action))
  150. return sprite
  151. end
  152. -- 放炮
  153. function zigongAnimationCompnent.CreateDianPaoEffect(callback)
  154. local sprite = cc.Sprite:create("mj/res/ui/zy_fangjian/operate/mj_effect_fangpao.png")
  155. -- sprite:loadTexture("luzhou_effect_img_bao.png", 1)
  156. sprite:setOpacity(150)
  157. sprite:setScale(0.5)
  158. local action = {
  159. cc.Spawn:create(cc.EaseBackOut:create(cc.ScaleTo:create(0.2,1)),cc.FadeTo:create(0.2,255)),
  160. cc.DelayTime:create(0.2),
  161. cc.Spawn:create(cc.EaseBackIn:create(cc.ScaleTo:create(0.2,0)),cc.FadeTo:create(0.2,100)),
  162. cc.CallFunc:create(function()
  163. if callback then
  164. callback()
  165. end
  166. end),
  167. cc.RemoveSelf:create(),
  168. }
  169. sprite:runAction(cc.Sequence:create(action))
  170. return sprite
  171. end
  172. function zigongAnimationCompnent.CreateStartSendCards(handViews,callback)
  173. local index=0
  174. local t=0.05
  175. local height=60
  176. local PCount = table.nums(handViews)
  177. for k,v in pairs(handViews) do
  178. for _,mj in pairs(v.handCards) do
  179. mj:setOpacity(0)--setVisible(false)
  180. end
  181. local startIndex=1
  182. local function nextAction()
  183. for i=startIndex,startIndex+3 do
  184. if v.handCards[i] then
  185. -- v.handCards[i]:setVisible(true)
  186. v.handCards[i]:setPositionY(v.handCards[i]:getPositionY()+height)
  187. v.handCards[i]:runAction(cc.EaseIn:create(cc.MoveBy:create(t,cc.p(0,-height)),t))
  188. v.handCards[i]:runAction(cc.FadeTo:create(t, 255))
  189. -- v.handCards[i]:runAction(cc.Sequence:create(cc.MoveBy:create(0.3,cc.p(0,-50)),cc.CallFunc(function()
  190. -- v.handCards[i]:setVisible(true)
  191. -- end)))
  192. end
  193. --[[if i==#v.handCards then
  194. v:stopAllActions()
  195. end--]]
  196. end
  197. startIndex=startIndex+4
  198. end
  199. local actions={
  200. cc.DelayTime:create(t*index),
  201. cc.CallFunc:create(nextAction),
  202. cc.DelayTime:create(t*PCount),
  203. cc.CallFunc:create(nextAction),
  204. cc.DelayTime:create(t*PCount),
  205. cc.CallFunc:create(nextAction),
  206. cc.DelayTime:create(t*PCount),
  207. cc.CallFunc:create(nextAction),
  208. }
  209. if index==table.nums(handViews)-1 then
  210. table.insert(actions,cc.DelayTime:create(0.3))
  211. table.insert(actions,cc.CallFunc:create(function()
  212. if callback then callback() end
  213. end))
  214. end
  215. v:runAction(cc.Sequence:create(actions))
  216. index=index+1
  217. end
  218. end
  219. -- 博自摸
  220. function zigongAnimationCompnent.CreateBoZiMoEffect(callback)
  221. local sprite = cc.Sprite:create("mj/res/ui/zy_fangjian/operate/mj_effect_bozimo.png")
  222. sprite:setOpacity(150)
  223. sprite:setScale(0.5)
  224. local bg = cc.Sprite:create("mj/res/ui/zy_fangjian/operate/mj_effect_text_bg.png")
  225. sprite:addChild(bg,-1)
  226. local size= sprite:getContentSize()
  227. bg:setPosition(cc.p(size.width/2,size.height/2))
  228. local action = {
  229. cc.Spawn:create(cc.EaseBackOut:create(cc.ScaleTo:create(0.2,1)),cc.FadeTo:create(0.2,255)),
  230. cc.DelayTime:create(0.1),
  231. cc.Spawn:create(cc.EaseBackIn:create(cc.ScaleTo:create(0.2,0)),cc.FadeTo:create(0.2,100)),
  232. cc.CallFunc:create(function()
  233. if callback then
  234. callback()
  235. end
  236. end),
  237. cc.RemoveSelf:create(),
  238. }
  239. sprite:runAction(cc.Sequence:create(action))
  240. return sprite
  241. end
  242. --萝卜动画
  243. function zigongAnimationCompnent.CreateLoBoEffect(card,desktopType,callback)
  244. if desktopType == MJDefine.DesktopType.ThreeD then
  245. desktopType = MJDefine.DesktopType.TwoD
  246. end
  247. local mj=MJ:new(0,MJDefine.MJType.Out,MJDefine.MyViewId,desktopType)
  248. mj:setScale(1.5)
  249. local action = {
  250. cc.MoveBy:create(0.3,cc.p(0,25)),
  251. cc.CallFunc:create(function()
  252. local lightEffect = zigongAnimationCompnent.createLuoBoLightEffect()
  253. local mjSize = mj:getContentSize()
  254. lightEffect:setPosition(cc.p(mjSize.width/2,mjSize.height/2+5))
  255. mj:addChild(lightEffect)
  256. local newValue=string.format("%x",card)
  257. mj:setOutImage(newValue,MJDefine.MyViewId)
  258. local sprite = cc.Sprite:createWithSpriteFrameName("zg_room_luoboyezi.png")
  259. sprite:setScale(0.6)
  260. sprite:setPosition(cc.p(mjSize.width/2-2,mjSize.height+8))
  261. mj:addChild(sprite,-1)
  262. end),
  263. cc.DelayTime:create(0.3),--光效时间
  264. --cc.DelayTime:create(3.0),--停留时间(播完光效停留几秒进入小局)
  265. cc.CallFunc:create(function()
  266. if callback then
  267. callback()
  268. end
  269. end),
  270. --cc.RemoveSelf:create(),
  271. }
  272. mj:runAction(cc.Sequence:create(action))
  273. return mj
  274. end
  275. --萝卜光效
  276. function zigongAnimationCompnent.createLuoBoLightEffect()
  277. -- 加载第一张图片
  278. local nodeImage = cc.ImageView:createNode()
  279. nodeImage:loadTexture(string.format("luobo-texiao_%d",0))
  280. -- 循环修改图片
  281. local everyFrame = 0.025
  282. local indexFace = 0
  283. local indexMax = 14
  284. local action1 = cc.Sequence:create(cc.DelayTime:create(everyFrame),cc.CallFunc:create(function ()
  285. indexFace = indexFace + 1
  286. if 0 < indexFace and indexFace < indexMax then
  287. else
  288. nodeImage:removeFromParent()
  289. return
  290. end
  291. local name = string.format("luobo-texiao_%d.png",indexFace)
  292. if not tolua.isnull(nodeImage) then
  293. nodeImage:loadTexture(name, cc.TextureResType.plistType)
  294. end
  295. end))
  296. local action2 = cc.Repeat:create(action1, indexMax+1)
  297. --nodeImage:stopAllActions()
  298. --nodeImage:runAction(cc.RepeatForever:create(action2));
  299. nodeImage:runAction(action2)
  300. nodeImage:setVisible(true)
  301. return nodeImage
  302. end
  303. --静态萝卜数量
  304. function zigongAnimationCompnent.CreateLoBoLabel(num,callback)
  305. local sprite = cc.Sprite:createWithSpriteFrameName("zg_room_luobo.png")
  306. local txtX = cc.TextBMFont:createNode()
  307. txtX:setFntFile("res/fonts/luobonum.fnt")
  308. txtX:setString("*")
  309. txtX:setLocalZOrder(1001)
  310. sprite:addChild(txtX)
  311. local txt = cc.TextBMFont:createNode()
  312. txt:setFntFile("res/fonts/luobonum.fnt")
  313. txt:setString(string.format("%d", num))
  314. --txt:setTag(166)
  315. txt:setLocalZOrder(1001)
  316. sprite:addChild(txt)
  317. local size= sprite:getContentSize()
  318. txtX:setPosition(cc.p(size.width+22,size.height/2-5))
  319. txt:setPosition(cc.p(size.width+55,size.height/2+5))
  320. local action = {
  321. cc.DelayTime:create(1.5),
  322. cc.CallFunc:create(function()
  323. if callback then
  324. callback()
  325. end
  326. end),
  327. }
  328. sprite:runAction(cc.Sequence:create(action))
  329. return sprite
  330. end
  331. -- 飘
  332. function zigongAnimationCompnent.CreatePiaoEffect(callback, isRemoveSelf)
  333. isRemoveSelf = false
  334. local sprite = cc.Sprite:create("mj/res/ui/zy_fangjian/operate/mj_effect_piao.png")
  335. sprite:setOpacity(150)
  336. sprite:setScale(isRemoveSelf and 0.5 or 0.3)
  337. local action={
  338. cc.Spawn:create(cc.EaseBackOut:create(cc.ScaleTo:create(0.3,isRemoveSelf and 1.0 or 0.5)),cc.FadeTo:create(0.3,255)),
  339. cc.DelayTime:create(0.1),
  340. cc.Spawn:create(cc.EaseBackIn:create(cc.ScaleTo:create(0.2, isRemoveSelf and 0 or 0.5)),cc.FadeTo:create(0.2, isRemoveSelf and 100 or 255)),
  341. cc.CallFunc:create(function()
  342. if callback then
  343. callback()
  344. end
  345. end),
  346. isRemoveSelf and cc.RemoveSelf:create()
  347. }
  348. sprite:runAction(cc.Sequence:create(action))
  349. return sprite
  350. end
  351. --刮风光效
  352. function zigongAnimationCompnent.createGuaFengEffect()
  353. -- 加载第一张图片
  354. local nodeImage = cc.ImageView:createNode()
  355. nodeImage:loadTexture(string.format("guafeng_%d",0))
  356. -- 循环修改图片
  357. local everyFrame = 0.035
  358. local indexFace = 0
  359. local indexMax = 18
  360. local action1 = cc.Sequence:create(cc.DelayTime:create(everyFrame),cc.CallFunc:create(function ()
  361. indexFace = indexFace + 1
  362. if 0 < indexFace and indexFace < indexMax then
  363. else
  364. nodeImage:removeFromParent()
  365. return
  366. end
  367. local name = string.format("guafeng_%d.png",indexFace)
  368. if not tolua.isnull(nodeImage) then
  369. nodeImage:loadTexture(name, cc.TextureResType.plistType)
  370. end
  371. end))
  372. local action2 = cc.Repeat:create(action1, indexMax+1)
  373. --nodeImage:stopAllActions()
  374. --nodeImage:runAction(cc.RepeatForever:create(action2));
  375. nodeImage:runAction(action2)
  376. nodeImage:setVisible(true)
  377. return nodeImage
  378. end
  379. --下雨光效
  380. function zigongAnimationCompnent.createXiaYuEffect()
  381. -- 加载第一张图片
  382. local nodeImage = cc.ImageView:createNode()
  383. nodeImage:loadTexture(string.format("xiayu-animation_%d",0))
  384. -- 循环修改图片
  385. local everyFrame = 0.035
  386. local indexFace = 0
  387. local indexMax = 16
  388. local action1 = cc.Sequence:create(cc.DelayTime:create(everyFrame),cc.CallFunc:create(function ()
  389. indexFace = indexFace + 1
  390. if 0 < indexFace and indexFace < indexMax then
  391. else
  392. nodeImage:removeFromParent()
  393. return
  394. end
  395. local name = string.format("xiayu-animation_%d.png",indexFace)
  396. if not tolua.isnull(nodeImage) then
  397. nodeImage:loadTexture(name, cc.TextureResType.plistType)
  398. end
  399. end))
  400. local action2 = cc.Repeat:create(action1, indexMax+1)
  401. --nodeImage:stopAllActions()
  402. --nodeImage:runAction(cc.RepeatForever:create(action2));
  403. nodeImage:runAction(action2)
  404. nodeImage:setVisible(true)
  405. return nodeImage
  406. end
  407. return zigongAnimationCompnent