local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine") local MJ=MJFramework.MJImport("mj.luaScript.Views.Game.MJ") local MJWanFa=MJFramework.ImportWanFa("luaScript.SubGameDefine.MaJiang.MJWanFa") local MJRoomXiaoJuView = MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Room.MJRoomXiaoJuView") -- 房间设置界面 local hongzhongRoomXiaoJuView = class("hongzhongRoomXiaoJuView", MJRoomXiaoJuView) local MJ_WIDTH=47 --起始位置 local MJ_HAND_CARD_INIT_X = 150 * g_radio_x local MJ_HAND_CARD_INIT_Y = 50 * g_radio_y local MJ_GROUP_CARD_INIT_X = 100 * g_radio_x --麻将组间隔 local MJ_GROUP_PADDING_X=0 --麻将直接间隔 local MJ_PADDING_X=-3 --胡牌麻将间隔 local MJ_HU_X=8 --暗杠上面的牌Y轴偏移量 local GANG_OFFSET_Y=16 function hongzhongRoomXiaoJuView:ctor() hongzhongRoomXiaoJuView.super.ctor(self) --self:loadUI() --添加扎鸟UI -- local ui = loadUI("hongzhong/res/ui_fangjian/hongzhong_ui_xiaoju.ui") -- self.zhaniaoUI = ui -- self.ui.Items.Layout_Content:addChild(ui) --获取红中设置参数里的麻将颜色 self.mjColor = loadUserInfo("hongzhong_mj_color") or MJDefine.DesktopType.TwoDGold self:changeHandCardY(50 * g_radio_y) end function hongzhongRoomXiaoJuView:loadUI() local ui = loadUI("hongzhong/res/ui_fangjian/hongzhong_ui_xiaoju.ui") self.ui = ui self:addChild(ui) end function hongzhongRoomXiaoJuView:setPlayerItemInfo(ui,player) hongzhongRoomXiaoJuView.super.setPlayerItemInfo(self,ui,player) local roomInfo = app.room.roomInfo local nodeResult= ui.Items["Text_ResultInfo"] local nodeBg= ui.Items["ImageView_ItemBg"] local strResult="" local benJuScore = "TextBMFont_Score" local benJuScore1 = "Text_Score" local nodeBenJu = ui.Items[benJuScore] local bmFontScore = true if not nodeBenJu then nodeBenJu = ui.Items[benJuScore1] bmFontScore = false end local gameInfo=json.decode(roomInfo.strGameInfo) if gameInfo.piaotype and tonumber(gameInfo.piaotype)==1 and player.nPiaoNum>-1 then if player.nPiaoNum==0 then strResult=strResult=="" and "不飘 " or strResult.." 不飘" else strResult=strResult=="" and "飘分"..player.nPiaoNum.." " or strResult.." 飘分"..player.nPiaoNum end end if app.room.roomInfo.scoreCntMap and app.room.roomInfo.scoreCntMap[tostring(player.nUserId)] then strResult=strResult..app.room.roomInfo.scoreCntMap[tostring(player.nUserId)] end -- if then return end nodeResult:setVisible(true) nodeResult:setString(strResult) if tonumber(player.nTurnScore) > 0 then nodeBg:loadTexture("mj_xiao_ju1_item_hu_bg.png",cc.TextureResType.plistType) nodeBg:setVisible(true) else nodeBg:setVisible(false) end if tonumber(player.nTurnScore) > 0 then nodeBenJu:setText("+"..player.nTurnScore) else nodeBenJu:setText(player.nTurnScore) if tonumber(player.nTurnScore)<0 and bmFontScore == true then nodeBenJu:setFntFile("res/fonts/dt_jian_num.fnt") end end if player.result~=MJDefine.MJGameResultType.Win then return end local resultInfo=json.decode(roomInfo.strResultInfo) -- resultInfo.zhongniaocards=" 0x01" local huImg=ui.Items.ImageView_Hu -- huImg:setPositionX(huImg:getPositionX()+40) -- 不在这里显示中鸟了,小局下面已经显示了 屏蔽by yuncai --[[local zhongniaocards=string.ltrim(resultInfo.zhongniaocards) local tabZhongniaocards=string.split(zhongniaocards," ") if resultInfo.zhongniaocards~="" and #tabZhongniaocards>0 then local zhongNiao=cc.Sprite:create("hongzhong/res/zy_fangjian/hongzhong_zhong_niao.png") ui.Items.Layout_Player:addChild(zhongNiao) local y=ui.Items.Layout_Player:getContentSize().height/2 zhongNiao:setPosition(825,y) if #tabZhongniaocards>4 then y=ui.Items.Layout_Player:getContentSize().height/2+28 end local x=0 for k,v in pairs(tabZhongniaocards) do local mj=MJ:new(v,MJDefine.MJType.Out,MJDefine.MyViewId) mj:setScale(0.8) ui.Items.Layout_Player:addChild(mj) local mjWidth=mj:getContentSize().width*0.8 local mjHeight=mj:getContentSize().height local index=k%4 if k==4 then index=4 end index=index==0 and 1 or index x=825+index*(mjWidth+MJ_PADDING_X)+20 if k>4 then mj:setPosition(x,y-48) else mj:setPosition(x,y) end end else end--]] end function hongzhongRoomXiaoJuView:initOther() -- hongzhongRoomXiaoJuView.super.initOther(self) local roomInfo = app.room.roomInfo self.ui.Items.Text_Round:setText("局数:"..roomInfo.nGameStartCount..'/'..roomInfo.nTotalGameNum) --房号 self.ui.Items.Text_RoomNum:setText("房号:"..roomInfo.nShowTableId) local resultInfo=json.decode(roomInfo.strResultInfo) --规则 local ruleAll = MJWanFa.getWanFaInfo(roomInfo.strGameInfo) local item = self.ui.Items.Text_Rule:getCopied() item:setVisible(true) item:setText(ruleAll) self.ui.Items.ListView:addChild(item) self.ui.Items.ListView:hideAllBar() self.ui.Items.ListView:getInnerContainer():setAutoSize(true) self.ui.Items.ListView:requestDoLayout(); self.ui.Items.ListView:doLayout(); --时间 self.ui.Items.Text_Time:setText(os.date("%m-%d %X"))--(getTimeString()) local zhaniaocards=string.ltrim(resultInfo.zhaniaocards) local tabZhaniaocards=string.split(zhaniaocards," ") if resultInfo.zhaniaocards=="" then tabZhaniaocards={} end local zhongniaocards=string.ltrim(resultInfo.zhongniaocards) local tabZhongniaocards=string.split(zhongniaocards," ") if resultInfo.zhongniaocards=="" then tabZhongniaocards={} end if #tabZhaniaocards>0 then for k,v in pairs(tabZhaniaocards) do local mj=MJ:new(v,MJDefine.MJType.Stand,MJDefine.MyViewId) mj:setScale(0.5) self.ui.Items.Layout_Niao:addChild(mj) local mjWidth=mj:getContentSize().width*0.5 local mjHeight=mj:getContentSize().height*0.5 local x=mjWidth/2+(k-1)*(mjWidth+MJ_PADDING_X) local y=mjHeight/2+20 mj:setPosition(x,y) mj:setStatus(MJDefine.MJStatus.Select) local niaoImg=cc.Sprite:create("hongzhong/res/zy_fangjian/hongzhong_niao2.png") mj:addChild(niaoImg) niaoImg:setScale(2) niaoImg:setPosition(mj:getContentSize().width/2,mj:getContentSize().height) for index,niao in pairs(tabZhongniaocards) do if v==niao then niaoImg:setTexture("hongzhong/res/zy_fangjian/hongzhong_niao1.png") mj:setStatus(MJDefine.MJStatus.Normal) table.remove(tabZhongniaocards,index) break end end end end end function hongzhongRoomXiaoJuView:createChi(values) local node=cc.Layer:create()--Color:create(cc.c4b(255,0,0,255)) node:setAnchorPoint(cc.p(0.5,0.5)) node:ignoreAnchorPointForPosition(false) local width=0 local height=0 for i=1,3 do if values[i] then local mj=MJ:new(values[i],MJDefine.MJType.Out,MJDefine.MyViewId,self.mjColor) node:addChild(mj) local mjWidth=mj:getContentSize().width local mjHeight=mj:getContentSize().height local x=mjWidth/2+(i-1)*(mjWidth+MJ_PADDING_X) local y=mjHeight/2 width=width+mjWidth height=mjHeight mj:setPosition(x,y) end end node:setContentSize(cc.size(width,height)) return node end function hongzhongRoomXiaoJuView:createGang(values) local node=cc.Layer:create()--Color:create(cc.c4b(255,0,0,255)) node:setAnchorPoint(cc.p(0.5,0.5)) node:ignoreAnchorPointForPosition(false) local width=0 local height=0 for i=1,4 do if values[i] then local mj=MJ:new(values[i],MJDefine.MJType.Out,MJDefine.MyViewId,self.mjColor) node:addChild(mj) local mjWidth=mj:getContentSize().width local mjHeight=mj:getContentSize().height local x=mjWidth/2+(i-1)*(mjWidth+MJ_PADDING_X) local y=mjHeight/2 width=width+mjWidth height=mjHeight mj:setPosition(x,y) end end node:setContentSize(cc.size(width,height)) return node end function hongzhongRoomXiaoJuView:createAnGang(values) local node=cc.Layer:create()--Color:create(cc.c4b(255,0,0,255)) node:setAnchorPoint(cc.p(0.5,0.5)) node:ignoreAnchorPointForPosition(false) local width=0 local height=0 for i=1,4 do if values[i] then local mj local mjWidth local mjHeight if i<=3 then mj=MJ:new(values[i],MJDefine.MJType.OutBlack,MJDefine.MyViewId,self.mjColor) if self.mjColor == MJDefine.DesktopType.TwoDGold then mj:setAutoSize(false) mj:setSize(cc.size(36,55)) mjWidth, mjHeight = 36, 55 elseif self.mjColor == MJDefine.DesktopType.TwoD then mj:setAutoSize(false) mj:setSize(cc.size(47,68)) mjWidth, mjHeight = 47,68 end else mj=MJ:new(values[i],MJDefine.MJType.Out,MJDefine.MyViewId,self.mjColor) end node:addChild(mj) local mjWidth= mjWidth or mj:getContentSize().width local mjHeight= mjHeight or mj:getContentSize().height local x=mjWidth/2+(i-1)*(mjWidth+MJ_PADDING_X) local y=mjHeight/2 if i <= 3 then y = y + 4 end width=width+mjWidth height=mjHeight mj:setPosition(x,y) end end node:setContentSize(cc.size(width,height)) return node end function hongzhongRoomXiaoJuView:createHandCards(layer,arg,seatId) --红中摆前面 local temp1={} local temp2={} for k,v in pairs(arg) do if v.card==0x41 then table.insert(temp1,v) else table.insert(temp2,v) end end local cards={} table.insertTo(cards,temp1) table.insertTo(cards,temp2) for k,v in pairs(cards) do local mj=MJ:new(v.card,MJDefine.MJType.Out,MJDefine.MyViewId, self.mjColor) layer:addChild(mj) mj:setPosition(cc.p(self.initX[seatId],MJ_HAND_CARD_INIT_Y)) self.initX[seatId]=self.initX[seatId]+mj:getContentSize().width + MJ_PADDING_X end for i,v in pairs(layer:getChildren()) do --[[if v and v.newValue then print("v.newValue ================= "..v.newValue) end--]] if tonumber(v.newValue) == 41 then local laiFlog = cc.Sprite:createWithSpriteFrameName("mj_flog_laizi_out.png") laiFlog:setScale(0.7) --laiFlog:setTag(MJ.MJ_HAND_CARD_FLAG_LAIZI) v:addChild(laiFlog) if self.mjColor == MJDefine.DesktopType.TwoDGold then laiFlog:setPosition(14,45) else laiFlog:setPosition(14,61) end end end end function hongzhongRoomXiaoJuView:createHuCard(layer,card,seatId) local mj=MJ:new(card,MJDefine.MJType.Out,MJDefine.MyViewId, self.mjColor) layer:addChild(mj) mj:setPosition(cc.p(self.initX[seatId], MJ_HAND_CARD_INIT_Y)) self.initX[seatId]=self.initX[seatId] + mj:getContentSize().width + MJ_PADDING_X local flag = cc.Sprite:create("mj/res/ui/zy_fangjian/mj_hu_flag.png") mj:addChild(flag) if self.mjColor == MJDefine.DesktopType.TwoDGold then flag:setPosition(cc.p(16,40)) else flag:setPosition(cc.p(16,55)) end end -- 分辨率改变回调(针对部分机型切后台后,导致牌数据位置不对(宽高分辨率对调了),暂时处理部分游戏) function hongzhongRoomXiaoJuView:applicationScreenSizeChanged() if not next(self.items) then return end MJ_HAND_CARD_INIT_X=150 * g_radio_x MJ_HAND_CARD_INIT_Y=50 * g_radio_y MJ_GROUP_CARD_INIT_X=100 * g_radio_x hongzhongRoomXiaoJuView.super.applicationScreenSizeChanged(self) end return hongzhongRoomXiaoJuView