房卡麻将分析之"一键入局"

Posted 火云洞红孩儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了房卡麻将分析之"一键入局"相关的知识,希望对你有一定的参考价值。

  地方棋牌,VR,AR技术,请关注公众号:"红孩儿的游戏开发之路“

                  房卡麻将分析之"一键入局"



         房卡麻将通过微信邀请好友加入房间进行游戏,大大方便了玩家进行麻将游戏。这也凸显了微信对于游戏引流导量的强大平台作用。本次我们就给大家讲一下“一键入局”的技术原理。


          首先,我们先来疏理一下整个过程:

          玩家打开游戏,创建房间,并将房间信息(房间说明和房间号码)生成链接通过微信SDK的分享到好友或朋友圈。其它玩家看到这个链接并点击后,如果已经安装游戏,会提示打开游戏APP并直接加入房间。如果未完装游戏,则会转到游戏下载页。


          这是在微信中分享房间的链接:


              

         

           这里非常重要的一个技术是用到 “魔窗” 。它是实现通过微信链接打开App并进入房间的关键。

             

           “魔窗”的主页是:http://www.magicwindow.cn,它有非常完整的集成文档,包括androidios,Web等多个平台系统的接入说明,中外还有专业技术妹子的接入视频讲解,非常详尽。

             
              这里主要使用的就是mLink,按照官方的文档一步步接入即可。在这一块,主要是需要生成一个短链接,这个短链接需要带上房间号信息,就像下面这样:
             

             OK,配置好后台的信息并按文档集成好SDK后,在客户端逻辑部分要做的是当"魔窗" 唤醒App时所响应的函数中,将短链接房间号信息取出来。

AppActivity.java中的代码片段:

			MLink.getInstance(context).register("first",new MLinkCallback()
			
				public void execute(Map<String, String>paramMap, Uri uri,Context context)
					String roomid = uri.getQueryParameter("roomid");
					if (roomid != null)
					
						Native.WxAutoLoginSetInfo(Integer.parseInt("1"), roomid);
					
				
			);

JniCallback.cpp中的代码片段:

		JNIEXPORT void JNICALL Java_org_cocos2dx_cpp_Native_WxAutoLoginSetInfo(JNIEnv* env, jclass method, jint autoLogon, jstring roomId)
		
			const char* data = env->GetStringUTFChars(roomId, 0);
			MissionWeiXin::m_nAutoLogin = autoLogon;
			MissionWeiXin::m_strRoomID = data;
		

             有了房间号,设置给游戏中的变量,并在游戏中判断接收到的房间号是否有效,调用加入房间的函数进入房间,即可完成整个 “一键入局” 的处理了。

void SDHomeScence::update(float delta)

    //如果玩家自动进入游戏
	if (MissionWeiXin::m_nAutoLogin == 1 && isVisible())
    
        int iActJoinNum = atoi(MissionWeiXin::m_strRoomID.c_str());
        int iServerID = iActJoinNum / 10000 - 10;
        SetJoinRoomIdInfo(iActJoinNum );
        
        CGameServerItem* pGameServer = GameManagerBase::InstanceBase().SearchGameServer(iServerID);
        if ( pGameServer )
        
GameManagerBase::InstanceBase().connectGameServerByServerID(iServerID);
        
        else
        
            NoticeMsg::Instance().ShowTopMsgByScript("JoinRoomNumError");
        
        MissionWeiXin::m_nAutoLogin = 0;
    

        如此,整个过程就算基本完成了。好了,加入了微信”一键入局“,相信我们的房卡麻将游戏可以大大提升下载量和试玩量。

  地方棋牌,VR,AR技术,请关注公众号:"红孩儿的游戏开发之路“




以上是关于房卡麻将分析之"一键入局"的主要内容,如果未能解决你的问题,请参考以下文章

房卡麻将分析系列之"断线重连"

房卡麻将分析系列之"断线重连"

房卡麻将分析系列 "牌局回放" 之 播放处理

房卡麻将分析系列之"千里传音"

房卡麻将分析系列之"架构选型"

房卡麻将分析系列之"发牌器"算法设计