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.

706 line
21 KiB

  1. -- 房间设置界面
  2. local PKDef = PKFramework.PKImport("pk_base.luaScript.PKDef")
  3. local PKFuc = PKFramework.PKImport("pk_base.luaScript.PKFunctions")
  4. local PKSound = PKFramework.PKImport("pk_base.luaScript.PKSound")
  5. local PKRoomPlayerView = class("PKRoomPlayerView", cc.UIView)
  6. function PKRoomPlayerView:ctor()
  7. PKRoomPlayerView.super.ctor(self);
  8. end
  9. function PKRoomPlayerView:onEnter()
  10. PKRoomPlayerView.super.onEnter(self)
  11. local ui = loadUI("pk_base/res/ui/ui_fangjian/pk_ui_PlayerView.ui");
  12. self.ui = ui;
  13. self:addChild(ui);
  14. --debug
  15. self.ui.Items.ImageView:setVisible(false)
  16. --离线时间
  17. self.offLineTime = {}
  18. self.offLineTime[1] = 0
  19. self.offLineTime[2] = 0
  20. self.offLineTime[3] = 0
  21. self.offLineTime[4] = 0
  22. self.clockTime = 20
  23. self.clockTimeView = 0--闹钟所在的viewid
  24. self:initPlayerNodes()
  25. end
  26. function PKRoomPlayerView:showClockVisible(viewId, bVisible, time)
  27. self:setAllClockVisible()
  28. self.allNodes[viewId].clock:setVisible(bVisible)
  29. if bVisible and time and time >= 0 then
  30. self.allNodes[viewId].clock:stopAllActions()
  31. local count = time;
  32. local seq = cc.Sequence:create(cc.CallFunc:create(function ()
  33. self:setClockTime(count)
  34. count = count - 1;
  35. if (count < 0) then
  36. self:showPopTextByViewId(viewId);
  37. count = 0;
  38. self.allNodes[viewId].clock:stopAllActions();
  39. end
  40. if count < 5 and viewId == 4 and not app.room.roomInfo.isGameOver then
  41. PKSound.PlayClock();
  42. end
  43. end), cc.DelayTime:create(1.0));
  44. self.allNodes[viewId].clock:runAction(cc.RepeatForever:create(seq));
  45. end
  46. end
  47. function PKRoomPlayerView:onExit()
  48. PKRoomPlayerView.super.onExit(self)
  49. --关闭定时器
  50. --[[if self.Time then
  51. cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.Time)
  52. end--]]
  53. end
  54. function PKRoomPlayerView:initPlayerNodes()
  55. -- 玩家节点名称模板
  56. local names =
  57. {
  58. player = "Layout_player_%d", -- 头像绿圈根节点
  59. head = "ImageView_head_%d", -- 头像
  60. headBoarder = "ImageView_head_border_%d", --头像边
  61. name = "Text_Name_%d", -- 名字
  62. score = "Text_Score_%d", -- 总分数
  63. banker = "ImageView_banker_%d", -- 庄家
  64. owner = "ImageView_owner_%d", --房主
  65. readyState = "ImageView_ready_%d", -- 准备
  66. headInfo = "Layout_headInfo_%d", --个人信息点击触发框
  67. offLine = "ImageView_offLine_%d", --离线标志
  68. --其他节点
  69. tip = "ImageView_tip_%d", --提示操作图
  70. clock = "ImageView_clock_%d", --闹钟
  71. txtClocl = "TextBMFont_clock_%d", --闹钟时间
  72. offLineTime = "Text_offLineTime_%d", --离线时间
  73. offLineTimeBg = "ImageView_txkYY_%d", --离线时间背景
  74. leftCardBg = "ImageView_leftbg_%d", --剩余手牌背景
  75. leftCardNum = "TextBMFont_leftnum_%d", --剩余手牌数量
  76. popText = "ImageView_pop_%d", --气泡提示
  77. friendFlag = "ImageView_friend_%d", --盟友标志
  78. baoPaiFlag = "ImageView_baopai_%d", --包牌标志
  79. baojing = "Layout_baojing_%d", --baojing标志
  80. ranking = "ImageView_ranking_%d", --游
  81. tuoguan = "ImageView_tuoguan_%d", --托管标志
  82. }
  83. self.allNodes = {}
  84. self.headSize = {}
  85. for i = 1,PKDef.GameMaxPlayer do
  86. local nodes = {}
  87. --玩家根节点
  88. local namePlayer = string.format(names.player,i)
  89. local nodePlayer = self.ui.Items[namePlayer]
  90. nodes.player = nodePlayer
  91. --头像
  92. local nameHead = string.format(names.head,i)
  93. local nodeHead = self.ui.Items[nameHead]
  94. nodes.head = nodeHead
  95. local headBoarder = string.format(names.headBoarder,i)
  96. local nodeheadBoarder = self.ui.Items[headBoarder]
  97. nodes.headBoarder = nodeheadBoarder
  98. -- 需要记录头像的原始尺寸
  99. if not self.headSize.width then
  100. self.headSize.width = nodeHead:getContentSize().width
  101. self.headSize.height = nodeHead:getContentSize().height
  102. end
  103. --昵称
  104. local nickName = string.format(names.name,i)
  105. local nodeName = self.ui.Items[nickName]
  106. nodes.name = nodeName
  107. nodeName:setText("")
  108. --总分
  109. local nickScore = string.format(names.score,i)
  110. local nodeScore = self.ui.Items[nickScore]
  111. nodes.score = nodeScore
  112. --庄家
  113. local nameBanker = string.format(names.banker,i)
  114. local nodeBanker = self.ui.Items[nameBanker]
  115. nodes.banker = nodeBanker
  116. nodes.banker.pos = nodeBanker:getPosition()
  117. --房主
  118. local nameOwner = string.format(names.owner,i)
  119. local nodeOwner = self.ui.Items[nameOwner]
  120. nodes.owner = nodeOwner
  121. nodes.owner.pos = nodeOwner:getPosition()
  122. --准备
  123. local nameReadyState = string.format(names.readyState,i)
  124. local nodeReadyState = self.ui.Items[nameReadyState]
  125. nodes.readyState = nodeReadyState
  126. --头像信息
  127. local headInfo = string.format(names.headInfo,i)
  128. local nodeheadInfo = self.ui.Items[headInfo]
  129. nodes.headInfo = nodeheadInfo
  130. --离线信息
  131. local offLine = string.format(names.offLine,i)
  132. local nodeoffLine = self.ui.Items[offLine]
  133. nodes.offLine = nodeoffLine
  134. --tip
  135. local nameTip = string.format(names.tip,i)
  136. local nodeTip = self.ui.Items[nameTip]
  137. nodes.tip = nodeTip
  138. --闹钟
  139. local nameClock = string.format(names.clock,i)
  140. local nodeClock = self.ui.Items[nameClock]
  141. nodes.clock = nodeClock
  142. --闹钟时间
  143. local nametxtClock = string.format(names.txtClocl,i)
  144. local nodetxtClock = self.ui.Items[nametxtClock]
  145. nodes.txtclock = nodetxtClock
  146. --离线时间
  147. local nameoffLineTime = string.format(names.offLineTime,i)
  148. local nodeoffLineTime = self.ui.Items[nameoffLineTime]
  149. nodes.offLineTime = nodeoffLineTime
  150. --离线时间背景
  151. local nameoffLineTimeBg = string.format(names.offLineTimeBg,i)
  152. local nodeoffLineTimeBg = self.ui.Items[nameoffLineTimeBg]
  153. nodes.offLineTimeBg = nodeoffLineTimeBg
  154. --剩余手牌背景
  155. local nameleftCardBg = string.format(names.leftCardBg,i)
  156. local nodeleftCardBg = self.ui.Items[nameleftCardBg]
  157. nodes.leftCardBg = nodeleftCardBg
  158. --剩余手牌数量
  159. local nameleftCardNum = string.format(names.leftCardNum,i)
  160. local nodeleftCardNum = self.ui.Items[nameleftCardNum]
  161. nodes.leftCardNum = nodeleftCardNum
  162. --气泡提示
  163. local namepopText = string.format(names.popText,i)
  164. local nodepopText = self.ui.Items[namepopText]
  165. nodes.popText = nodepopText
  166. --s
  167. local namefriendFlag = string.format(names.friendFlag,i)
  168. local nodefriendFlag = self.ui.Items[namefriendFlag]
  169. nodes.friendFlag = nodefriendFlag
  170. --baopai
  171. local namebaoPaiFlag = string.format(names.baoPaiFlag,i)
  172. local nodebaoPaiFlag = self.ui.Items[namebaoPaiFlag]
  173. nodes.baoPaiFlag = nodebaoPaiFlag
  174. --报警
  175. local namebaojing = string.format(names.baojing,i)
  176. local nodebaojing = self.ui.Items[namebaojing]
  177. nodes.baojing = nodebaojing
  178. --排名
  179. local nameranking = string.format(names.ranking,i)
  180. local noderanking = self.ui.Items[nameranking]
  181. nodes.ranking = noderanking
  182. --托管状态
  183. local nametuoguan = string.format(names.tuoguan,i)
  184. local nodetuoguan = self.ui.Items[nametuoguan]
  185. nodes.tuoguan = nodetuoguan
  186. self.allNodes[i] = nodes
  187. end
  188. end
  189. function PKRoomPlayerView:setRankingFlagVisible()
  190. for i = 1,PKDef.GameMaxPlayer do
  191. self.allNodes[i].ranking:setVisible(false)
  192. end
  193. end
  194. function PKRoomPlayerView:setBaoPaiFlagVisible()
  195. for i = 1,PKDef.GameMaxPlayer do
  196. self.allNodes[i].baoPaiFlag:setVisible(false)
  197. end
  198. end
  199. --播放报警动画
  200. function PKRoomPlayerView:showBaoJingAni(viewId,clean)
  201. local nodeLayout = self.allNodes[viewId].baojing
  202. nodeLayout:removeAllChildren()
  203. if clean then
  204. return
  205. end
  206. --ani
  207. local img = cc.ImageView:createNode()
  208. img:loadTextureFromPlist("pk_baojing_bg.png")
  209. nodeLayout:addChild(img)
  210. img:setPosition(cc.p(nodeLayout:getContentSize().width/2,nodeLayout:getContentSize().height/2))
  211. --light
  212. local light = cc.ImageView:createNode("pk_baojing_bg.png")
  213. nodeLayout:addChild(light)
  214. light:setPosition(cc.p(nodeLayout:getContentSize().width/2,nodeLayout:getContentSize().height/2))
  215. local indexFace = 0;
  216. --每隔多少秒切换一张图片
  217. local everyFrame = 0.01
  218. local seq = cc.Sequence:create(cc.DelayTime:create(everyFrame),cc.CallFunc:create(function ()
  219. indexFace = indexFace + 1
  220. if 0 < indexFace and indexFace <= 8 then
  221. local name = string.format("pk_baojing_%d.png",indexFace)
  222. light:loadTextureFromPlist(name)
  223. else
  224. indexFace = 0
  225. end
  226. end))
  227. local act = cc.RepeatForever:create(seq)
  228. light:runAction(act)
  229. end
  230. -- 移除所有玩家的报警器
  231. function PKRoomPlayerView:setAllBaoJingVisible()
  232. for i = 1, PKDef.GameMaxPlayer do
  233. if self.allNodes[i] and self.allNodes[i].baojing then
  234. local nodeLayout = self.allNodes[i].baojing
  235. nodeLayout:removeAllChildren()
  236. end
  237. end
  238. end
  239. function PKRoomPlayerView:setFriendFlagVisible()
  240. for i = 1,PKDef.GameMaxPlayer do
  241. self.allNodes[i].friendFlag:setVisible(false)
  242. end
  243. end
  244. function PKRoomPlayerView:showFriendFlag(firendList,enemyList,isShowAni)
  245. local inFriend = false
  246. for k,viewId in ipairs(firendList) do
  247. if viewId == PKDef.MyViewID then
  248. inFriend = true
  249. end
  250. end
  251. local worldPos = cc.p(getWinSize().width/2,getWinSize().height/2)
  252. local function action(pos)
  253. local seq = cc.Sequence:create(cc.FadeIn:create(0.3),cc.DelayTime:create(0.5),cc.MoveTo:create(0.3,pos))
  254. return seq
  255. end
  256. for k,viewId in ipairs(firendList) do
  257. if not self.allNodes[viewId].friendFlag:isVisible() then
  258. local srcPos = self.allNodes[viewId].friendFlag:getPosition()
  259. local posInPlayer = self.allNodes[viewId].friendFlag:getParent():convertToNodeSpace(worldPos)
  260. self.allNodes[viewId].friendFlag:setVisible(true)
  261. if inFriend then
  262. self.allNodes[viewId].friendFlag:loadTexture("pk_base/res/ui/zy_fangjian/playerView/pk_ally.png")
  263. else
  264. self.allNodes[viewId].friendFlag:loadTexture("pk_base/res/ui/zy_fangjian/playerView/pk_enemy.png")
  265. end
  266. if isShowAni then
  267. self.allNodes[viewId].friendFlag:setPosition(posInPlayer)
  268. self.allNodes[viewId].friendFlag:setOpacity(0)
  269. self.allNodes[viewId].friendFlag:runAction(action(srcPos))
  270. else
  271. self.allNodes[viewId].friendFlag:setPosition(srcPos)
  272. end
  273. end
  274. end
  275. for k,viewId in ipairs(enemyList) do
  276. if not self.allNodes[viewId].friendFlag:isVisible() then
  277. local srcPos = self.allNodes[viewId].friendFlag:getPosition()
  278. local posInPlayer = self.allNodes[viewId].friendFlag:getParent():convertToNodeSpace(worldPos)
  279. self.allNodes[viewId].friendFlag:setVisible(true)
  280. if inFriend then
  281. self.allNodes[viewId].friendFlag:loadTexture("pk_base/res/ui/zy_fangjian/playerView/pk_enemy.png")
  282. else
  283. self.allNodes[viewId].friendFlag:loadTexture("pk_base/res/ui/zy_fangjian/playerView/pk_ally.png")
  284. end
  285. if isShowAni then
  286. self.allNodes[viewId].friendFlag:setOpacity(0)
  287. self.allNodes[viewId].friendFlag:setPosition(posInPlayer)
  288. self.allNodes[viewId].friendFlag:runAction(action(srcPos))
  289. else
  290. self.allNodes[viewId].friendFlag:setPosition(srcPos)
  291. end
  292. end
  293. end
  294. end
  295. --设置某个玩家分数
  296. function PKRoomPlayerView:setPlayerScore(viewId,strScore)
  297. if self.allNodes[viewId] and self.allNodes[viewId].score then
  298. self.allNodes[viewId].score:setText(tostring(strScore))
  299. end
  300. end
  301. --设置准备状态按钮
  302. function PKRoomPlayerView:setReadyStateVisible()
  303. for i = 1,PKDef.GameMaxPlayer do
  304. self.allNodes[i].readyState:setVisible(false)
  305. end
  306. end
  307. function PKRoomPlayerView:setOffLineBg()
  308. for i = 1,PKDef.GameMaxPlayer do
  309. self.allNodes[i].offLineTimeBg:setVisible(false)
  310. end
  311. end
  312. --设置某个玩家准备状态显示
  313. function PKRoomPlayerView:setPlayerReadyState(viewId,bVisible)
  314. if self.allNodes[viewId] and self.allNodes[viewId].readyState then
  315. self.allNodes[viewId].readyState:setVisible(bVisible)
  316. end
  317. end
  318. --隐藏庄家
  319. function PKRoomPlayerView:setBankerVisible()
  320. for i = 1,PKDef.GameMaxPlayer do
  321. self.allNodes[i].banker:setVisible(false)
  322. end
  323. end
  324. --设置某个庄家Visible
  325. function PKRoomPlayerView:setPlayerBankerVisible(viewId,bVisible)
  326. self:setBankerVisible()
  327. if self.allNodes[viewId] then
  328. self.allNodes[viewId].banker:setVisible(bVisible)
  329. return true
  330. end
  331. return false
  332. end
  333. --隐藏房主
  334. function PKRoomPlayerView:setOwnerVisible()
  335. for i = 1,PKDef.GameMaxPlayer do
  336. self.allNodes[i].owner:setVisible(false)
  337. end
  338. end
  339. --设置某个房主Visible
  340. function PKRoomPlayerView:setPlayerOwnerVisible(viewId,bVisible)
  341. self:setOwnerVisible()
  342. if self.allNodes[viewId] then
  343. self.allNodes[viewId].owner:setVisible(bVisible)
  344. return true
  345. end
  346. return false
  347. end
  348. --隐藏提示
  349. function PKRoomPlayerView:setOperatorTipVisible()
  350. for i = 1,PKDef.GameMaxPlayer do
  351. self.allNodes[i].tip:setVisible(false)
  352. end
  353. end
  354. --隐藏玩家
  355. function PKRoomPlayerView:setPlayerVisible(bVisible)
  356. for i = 1,PKDef.GameMaxPlayer do
  357. self.allNodes[i].player:setVisible(bVisible)
  358. end
  359. end
  360. --隐藏离线
  361. function PKRoomPlayerView:setOffLine()
  362. for i = 1,PKDef.GameMaxPlayer do
  363. self.allNodes[i].offLine:setVisible(false)
  364. end
  365. end
  366. --隐藏离线
  367. function PKRoomPlayerView:setPlayerOffLine(bVisible,viewId)
  368. if viewId and self.allNodes[viewId] then
  369. self.allNodes[viewId].offLine:setVisible(bVisible)
  370. --头像变灰
  371. self.allNodes[viewId].head:setGreyEnabled(bVisible)
  372. self.allNodes[viewId].headBoarder:setGreyEnabled(bVisible)
  373. if app.room.offLineTime and next(app.room.offLineTime) ~= nil then
  374. local nUserId = app.room:getUserIdByViewId(viewId)
  375. if app.room.offLineTime[nUserId] then
  376. self.offLineTime[viewId] = app.room.offLineTime[nUserId]
  377. else
  378. self.offLineTime[viewId] = 0
  379. end
  380. else
  381. self.offLineTime[viewId] = 0
  382. end
  383. if app.gameId == GAME_IDS.luzhouDaEr then--暂时泸州大贰加倒计时
  384. self.allNodes[viewId].offLineTimeBg:setVisible(bVisible)
  385. else
  386. self.allNodes[viewId].offLineTimeBg:setVisible(false)
  387. end
  388. end
  389. end
  390. --设置用户没有操作的时间
  391. function PKRoomPlayerView:setNoOpTime(bVisible,viewId)
  392. if true then
  393. return
  394. end
  395. if viewId and self.allNodes[viewId] then
  396. if app.room.offLineTime and next(app.room.offLineTime) ~= nil then
  397. local nUserId = app.room:getUserIdByViewId(viewId)
  398. if app.room.offLineTime[nUserId] then
  399. self.offLineTime[viewId] = app.room.offLineTime[nUserId]
  400. else
  401. self.offLineTime[viewId] = 0
  402. end
  403. else
  404. self.offLineTime[viewId] = 0
  405. end
  406. if app.gameId == GAME_IDS.luzhouDaEr then--暂时泸州大贰加倒计时
  407. local time = os.date("%M:%S",self.offLineTime[viewId]) or "00:00"
  408. self.allNodes[viewId].offLineTime:setText(time)
  409. self.allNodes[viewId].offLineTimeBg:setVisible(bVisible)
  410. else
  411. self.allNodes[viewId].offLineTimeBg:setVisible(false)
  412. end
  413. end
  414. end
  415. function PKRoomPlayerView:showBaoPaiFlag(viewId,opType)
  416. self.allNodes[viewId].baoPaiFlag:setVisible(true)
  417. if opType == PKDef.BaoPai.BAOPAI then
  418. self.allNodes[viewId].baoPaiFlag:loadTexture("pk_base/res/ui/zy_fangjian/playerView/pk_baoMark0.png")
  419. elseif opType == PKDef.BaoPai.FANBAO then
  420. self.allNodes[viewId].baoPaiFlag:loadTexture("pk_base/res/ui/zy_fangjian/playerView/pk_fanMark0.png")
  421. else
  422. self.allNodes[viewId].baoPaiFlag:setVisible(false)
  423. end
  424. end
  425. --用户行为提示
  426. function PKRoomPlayerView:showRanking(viewId,rank)
  427. local ranking = self.allNodes[viewId].ranking
  428. ranking:setVisible(true)
  429. local file = string.format("pk_base/res/ui/zy_fangjian/roomView/pk_ranking%d.png",rank)
  430. ranking:loadTexture(file)
  431. end
  432. --用户行为提示
  433. function PKRoomPlayerView:showOperatorTip(viewId,opType,bPlayVoice)
  434. local tip = self.allNodes[viewId].tip
  435. tip:setVisible(true)
  436. --音效
  437. local nUserId = app.room:getUserIdByViewId(viewId)
  438. local userInfo = app.room:getUserInfo(nUserId)
  439. if app.room.roomInfo.nStatus == PKDef.ReconnectState.GAME_STATUS_ASK_BAO then
  440. if opType == PKDef.BaoPai.BAOPAI then --bao
  441. tip:loadTexture(PKDef.TipFile.BaoPai)
  442. elseif opType == PKDef.BaoPai.BUBAO then -- bubao
  443. tip:loadTexture(PKDef.TipFile.BuBao)
  444. elseif opType == PKDef.BaoPai.FANBAO then --反包
  445. tip:loadTexture(PKDef.TipFile.FanBao)
  446. elseif opType == PKDef.BaoPai.BUFAN then --不反
  447. tip:loadTexture(PKDef.TipFile.BuFan)
  448. end
  449. if userInfo and bPlayVoice then
  450. PKSound.PlayBaoPaiSound(userInfo.sex,opType)
  451. end
  452. elseif app.room.roomInfo.nStatus == PKDef.ReconnectState.GAME_STATUS_PLAYING then
  453. if opType == 0 then
  454. tip:loadTexture(PKDef.TipFile.BuChu)
  455. tip:runAction(cc.Sequence:create(cc.DelayTime:create(0.5),cc.CallFunc:create(function ()
  456. tip:setVisible(false)
  457. end)))
  458. end
  459. if userInfo and bPlayVoice then
  460. PKSound.PlayBuYaoSound(userInfo.sex)
  461. end
  462. end
  463. end
  464. -- 更新玩家基本信息 : 昵称、头像
  465. -- index :是玩家展示出来的座位号
  466. function PKRoomPlayerView:updatePlayerInfo(index)
  467. logD("PKRoomPlayerView:updatePlayerInfo() index = ", index)
  468. local nodes = self.allNodes[index]
  469. if not nodes then return end
  470. local nUserId = app.room.seatShowList[index]
  471. local roomInfo = app.room.roomInfo
  472. local memberInfo = app.room.roomInfo.memberList[nUserId]
  473. if nUserId and app.room:checkUserIDIsInTable(nUserId) then
  474. nodes.player:setVisible(true)
  475. local userInfo = json.decode(memberInfo.userInfo)
  476. if not userInfo then
  477. return
  478. end
  479. -- 玩家名字
  480. local nickname = userInfo.nickname
  481. nickname = getSubStringNickname(nickname)
  482. nodes.name:setText(tostring(nickname))
  483. nodes.score:setText(tostring(memberInfo.nTotalScore))
  484. -- 玩家头像
  485. local nodeHead = nodes.head;
  486. --先设置默认头像
  487. local width = nodeHead:getContentSize().width
  488. setPlayerHeadImage(nUserId, userInfo.headimgurl, nodeHead)
  489. --[[ if app.room.offLineUid[tonumber(nUserId)] or (memberInfo.nOnlineStatus and memberInfo.nOnlineStatus~=1) then
  490. self:setPlayerOffLine(true,index)
  491. else
  492. self:setPlayerOffLine(false,index)
  493. end--]]
  494. else
  495. nodes.player:setVisible(false)
  496. end
  497. end
  498. function PKRoomPlayerView:getPlayerPosByViewId(view)
  499. if self.allNodes[view] and self.allNodes[view].player then
  500. return self.allNodes[view].player:getPosition()
  501. end
  502. end
  503. function PKRoomPlayerView:playBaoAnim(view)
  504. if self.allNodes[view] and self.allNodes[view].bao then
  505. self.allNodes[view].bao:setVisible(true)
  506. -- 加载第一张图片
  507. local nodeImage = cc.ImageView:createNode()
  508. nodeImage:loadTexture(string.format("anim_bao_%d",1))
  509. self.allNodes[view].bao:addChild(nodeImage)
  510. local baoSize = self.allNodes[view].bao:getContentSize()
  511. nodeImage:setPosition(cc.p(baoSize.width/2-1,baoSize.height/2-2))
  512. -- 循环修改图片
  513. local everyFrame = 0.1
  514. local indexFace = 0
  515. local indexMax = 7
  516. local action1 = cc.Sequence:create(cc.DelayTime:create(everyFrame),cc.CallFunc:create(function ()
  517. indexFace = indexFace + 1
  518. if 0 < indexFace and indexFace <= indexMax then
  519. else
  520. indexFace = 1
  521. end
  522. local name = string.format("anim_bao_%d.png",indexFace)
  523. if not tolua.isnull(nodeImage) then
  524. nodeImage:loadTexture(name, cc.TextureResType.plistType)
  525. end
  526. end))
  527. local action2 = cc.Repeat:create(action1, indexMax)
  528. nodeImage:stopAllActions()
  529. nodeImage:runAction(cc.RepeatForever:create(action2));
  530. nodeImage:setVisible(true)
  531. end
  532. end
  533. --设置所有闹钟隐藏
  534. function PKRoomPlayerView:setAllClockVisible(bVisible)
  535. for i = 1,PKDef.GameMaxPlayer do
  536. if self.allNodes[i] and self.allNodes[i].clock then
  537. self.allNodes[i].clock:setVisible(bVisible)
  538. self.allNodes[i].clock:stopAllActions()
  539. end
  540. end
  541. end
  542. --设置闹钟可见
  543. function PKRoomPlayerView:setPClockVisible(viewId,bVisible)
  544. self.clockTime = 9
  545. self.clockTimeView = viewId
  546. self:setClockTime(self.clockTime)
  547. self:setAllClockVisible(false)
  548. if self.allNodes[viewId] and self.allNodes[viewId].clock then
  549. self.allNodes[viewId].clock:setVisible(bVisible)
  550. end
  551. end
  552. --重置闹钟时间
  553. function PKRoomPlayerView:reSetClockTime(viewId)
  554. if viewId == self.clockTimeView then
  555. self.clockTime = 9
  556. end
  557. end
  558. --设置闹钟时间
  559. function PKRoomPlayerView:setClockTime(num)
  560. for i=1,PKDef.GameMaxPlayer do
  561. if self.allNodes[i] and self.allNodes[i].txtclock then
  562. self.allNodes[i].txtclock:setText(num)
  563. end
  564. end
  565. end
  566. --隐藏剩余牌
  567. function PKRoomPlayerView:hideLeftCard()
  568. for i=1,PKDef.GameMaxPlayer do
  569. if self.allNodes[i] and self.allNodes[i].leftCardBg then
  570. self.allNodes[i].leftCardBg:setVisible(false)
  571. end
  572. end
  573. end
  574. --设置显示剩余手牌
  575. function PKRoomPlayerView:setLeftCardNum(viewId,bVisible,num)
  576. if bVisible and bVisible == true and PKFuc.getIsShowLeftCard() then
  577. if self.allNodes[viewId] and self.allNodes[viewId].leftCardNum then
  578. self.allNodes[viewId].leftCardBg:setVisible(bVisible)
  579. self.allNodes[viewId].leftCardNum:setText(num)
  580. end
  581. end
  582. end
  583. --隐藏气泡
  584. function PKRoomPlayerView:hideAllPopText()
  585. for i=1,PKDef.GameMaxPlayer do
  586. if self.allNodes[i] and self.allNodes[i].popText then
  587. self.allNodes[i].popText:setVisible(false)
  588. end
  589. end
  590. end
  591. --显示某个玩家的气泡等待
  592. function PKRoomPlayerView:showPopTextByViewId(viewId)
  593. self:hideAllPopText()
  594. do
  595. -- 不显示气泡等待
  596. return
  597. end
  598. if self.allNodes[viewId] and self.allNodes[viewId].popText then
  599. self.allNodes[viewId].popText:setVisible(true)
  600. self.allNodes[viewId].popText:stopAllActions()
  601. self.allNodes[viewId].popText:setScale(0)
  602. self.allNodes[viewId].popText:runAction(cc.ScaleTo:create(0.3,1))
  603. end
  604. end
  605. --托管标签状态显示
  606. function PKRoomPlayerView:setTuoGuanFlagVisible(flag)
  607. flag = flag or false
  608. for i = 1,PKDef.GameMaxPlayer do
  609. if self.allNodes[i] and self.allNodes[i].tuoguan then
  610. self.allNodes[i].tuoguan:setVisible(flag)
  611. end
  612. end
  613. end
  614. function PKRoomPlayerView:showTuoGuanByViewId(viewId,bVisible)
  615. if not viewId then return end
  616. bVisible = bVisible or false
  617. if self.allNodes[viewId] and self.allNodes[viewId].tuoguan then
  618. self.allNodes[viewId].tuoguan:setVisible(bVisible)
  619. end
  620. end
  621. return PKRoomPlayerView;