我微信去看简书文章发给微信好友去了但是好友发给我的信息没有提示声,但是我都有设置提示声的,觉得好麻烦求帮忙。

    现在很多APP为了让用户更加快捷方便注册,都会使用第三方进行登录,例如QQ/微信/淘宝等。但是上线审核被拒,大致会出现以下内容:

    此外,我们发现,您的应用程序需要的其他应用程序也可以使用之前,这是不符合的App Store审查指南的安装。的应用程序应能够在启动运行,而无需额外的应用程序来进行安装。

具体来说,我们都要安装微信/ QQ之前,我们可以使用您的应用程序共享功能。

    请修改您的应用程序,使用户可以在启动使用它。如果您的应用程序在使用前需要身份验证,请使用可从您的应用程序中验证用户身份的方法。

    使用微信分享、登录必须安装微信客户端,QQ登录、QQ空间分享过程中必须安装手机QQ客户端,在未安装客户端的设备上测试会提示下载,这是不符合苹果审核规则的。这是微信及腾讯QQ互联导致的问题。

首先调用微信SDK或QQ互联SDK的方法检测是否安装微信/QQ客户端:

    如果未安装客户端则隐藏对应登录或分享按钮。

    经过验证上述方法可以有效通过APPstore审核,这边会密切关注微信及QQ互联方面的动态,如果有更好的解决方案,也会第一时间更新。


根据微信官方对外公开的消息,微信小游戏的脚步越来越接近了。它的开发者资格门槛和使用者门槛都很低,以后必将引爆一波"全民开发小游戏"浪潮。

官方的开发工具创建项目即可获取 打飞机 的源码,这是一个很小但五脏俱全的2D游戏,相信大多数嗅觉灵敏的程序员小哥哥们都已经体验并且亲手改造过啦。

但是如果你想借助微信的平台,做一个交互性、可玩性很强的 联网游戏 ,就有一定的难度啦。不用怕,有 的最新产品 助力,第一波流量红利你也能轻松抓住!这次教程我们就来讨论 如何在完全不懂服务器开发的情况下做一个实时联网对战的微信小游戏 (联网飞机大战)。


为了能通读这篇文章,你最好:

  1. 已经掌握开发简单的微信小游戏,能看懂官方 打飞机 源码就行,甚至会用 Javascript 输出HelloWorld也行
  2. 略懂Java,其实不懂也行,在JS的基础上很容易引申,主要是要有 面向对象 的思想

下文重点都是讲如何快速上手开发 联网的微信小游戏 , 但 如果你懂得一些U3D开发Bmob官方 也同时提供了 Unity3D版本的Demo+SDK两者可以跨平台互通一起玩,且接口规范高度一致,基本上覆盖市面上所有的主流终端

PS:微信小游戏、Unity3D的SDK都是 开源 的,欢迎各位纠错

  1. 获取 (下称 官网)的账号,文章下方有获得方式;
  2. 官网下载 微信小游戏Demo+SDK,导入到微信开发者工具(下称 工具),并修改AppKey
  3. 官网配置玩家同步属性,并发布下载的云端代码,然后在官网选择一个云服务器开启(PS:云服务器是免费的)
  4. 试运行Demo,如果console没有报错的话,点击工具预览,用微信扫描二维码;
  5. 现在,就可以在游戏内创建房间体验电脑与手机联网对战啦

接下来大概介绍一下微信小游戏项目开发的要点,云端代码的详解和U3D版本的教程将陆续推出

左边的是 微信小游戏-开发者工具 的游戏页面,与右边的 Unity3D-MacOS-Editor 跨平台玩

超清/720P模式观看体验更好哦

不得不说程序员自己来做UI真的丑得可以,那个"房间"界面真的无力吐槽

目前的Demo跨平台玩耍还有点小问题,例如玩家、怪物的移动速度不统一。但同平台对战是高度一致的。 这个问题与SDK没有关系,都是Demo本地项目的参数设置,主要是因为Unity项目都用的是绝对值,微信小游戏项目都是相对值,后续Unity也采用相对值的方式,完善Demo。


论游戏开发的经验,相信各位读者中比我厉害的人多了去了。我这里就根据我个人的开发历程,围绕 联网飞机大战 这个项目,讲一下从零开发游戏的步骤吧。(嫌麻烦的可以不用看这一篇)

  1. 理清多个客户端之间需要 同步的属性、互相通知的事件
  2. 分析客户端与服务器需要 交互的事件
  3. 制作/收集图片、动画、音效素材;
  4. 开发/照搬游戏世界的物理引擎,包括物体渲染、移动、碰撞检测(以及内存管理)等;
  5. 先开发服务端游戏逻辑(Java云端代码),有利于理清整个游戏的逻辑;
  6. 后开发客户端游戏逻辑、接入SDK

下面是展开来讲 (获取Demo、SDK完整源码的方式见文章底部)


  • 玩法:这个项目准备做成可以容纳超多人同时在线的飞机大战,所有设定基本上和微信小游戏官方Demo一样,增加了几个设定:

     - 有四种造型、级别不同的Bot(有些人习惯称为 '电脑',也可以称为'飞机NPC')
     - 第3、4级的Bot可以开火,子弹(下称Fire)飞行速度与玩家一致,4级Bot的开火频率更高
     - Bot有生命值(不再是一碰就死),分别是2、3、4、4,表示可以承受的Fire攻击次数
     - Player(玩家)和Bot都分为两个阵营,阵营内无队友伤害
     - Player的阵营由服务器随机划分,也可以改成玩家自己决定
     - 刷怪逻辑放在云端,指定新产生的Bot的阵营、位置、类型
     - Player受到伤害即淘汰,Fire碰到任何物体都消失
     - Player的开火暂时做成自动的,而不是按键开火
     - Player的开火事件(开火坐标)是直接发送到其它客户端,不经过云端代码
     - Player的淘汰交由云端处理,由云端校验后,再把该事件和胜负判定分发下去
     - Bot的淘汰判定交由云端处理、分发
     - 当某一方Player全部死亡时,另一方胜利;双方各剩一人时同归于尽则平局
    

  • 客户端间属性同步、事件通知:玩家仅有两个属性需要自动同步、分发,一个是 位置,另一个是 分数;直接同步的事件仅有 开火

     - 位置:这是一个2D游戏,所以玩家位置可以用float[2]类型表达
     (一致性,是指跨平台或分辨率、屏幕大小不同时,坐标需要达成一致最好用百分比)
     - 分数:仅云端代码有权限修改,根据Player、Bot的击落事件加分
     可以在游戏结束时,结算成经验值,保存到Bmob数据库
     
     - 开火:直接通知到其它客户端,仅记录Fire的起点坐标即可,也就是[0-35]
     再加上需要标记这次通知的事件类型(开火),这里定flag为50
    

  • 客户端-云端交互事件:需要服务器做的事情有:保存房间信息;分配队伍;正式通知游戏开始;刷怪逻辑;判定Bot淘汰;判定Player淘汰;添加Player分数;判定胜负结果;战绩记录

     - 房间、战绩信息:通过云端代码的Bmob数据库操作API完成
     - 分配队伍:在客户端Scene.OnLoad后通知服务器,服务器进行队伍分配
     将玩家随机、均匀分成两队,然后下发,客户端处理完毕再通知服务器
     - 正式开始:服务器确认所有客户端处理了队伍信息后,通知所有客户端开始游戏
     - 刷怪逻辑:随机Bot的阵营、x轴位置、类型、名字,下发给客户端处理
     - Bot淘汰:任意客户端上报'目睹'某Bot被击毁,云端即采信、下发、记分
     所谓'目睹',就是客户端渲染时进行碰撞检测,发现这个Bot的hp为0
     - Player淘汰:n个客户端'目睹'某Player被击毁,在短时间内n>=m,云端才采信、下发、记分
     当玩家仅有2、3人时,m为1,也就是上报即采信
     当玩家有4、5、6人时,m为2,不采信单个上报
     当玩家超过6人时,m为3,也就是起码3人上报才采信
     '短时间'目前是设为2000ms,也就是上报信息的有效期为2秒
     - 判定胜负结果:两队最后一人同时淘汰时平局;某队先于敌队全员淘汰则败
    


  • 物理引擎:来自微信官方Demo(Sprite.js)/脑洞+造轮子/第三方途径下载

     // 小改进后的矩形碰撞检测:
    

  • Java云端代码:在上面第3点已经有说明,这里放几段代码:
// 先分配队伍,后开始游戏。分配队伍这段时间,不是真正的游戏开始,不要刷怪 // 刷怪的时间间隔(毫秒),决定了刷怪的频率,根据玩家人数来定。人越多,刷怪越快 // 上次刷怪的时间记录 // 怪物的个数,也顺便作为id // 置信区间: 计算击中的逻辑放到了客户端的时候,击中敌人/怪物的事件,不能完全听信其中一个客户端,防止ping差异击杀、外挂 // 怪物还相对无关紧要,某一个客户端上报了,就选择相信他 // 但是玩家的淘汰影响到体验,需要多个玩家同时认证的情况下判定 // 于是约定:如果房间有2、3人,可以一个人说了算(以免掉线玩家无敌) // 如果有4个人玩游戏,需要2个人在短时间内"看到"某个玩家的死亡,那么这个玩家才是真正的死亡了 // 更多人的情况下,最多只要3个人在短时间内说某个玩家死亡,就可以作出判定 // 特殊的,如果某个玩家是汇报自己死亡,那么不用经过置信区间检测,直接判定死亡 // 各1个玩家的时候,1秒2个怪;以此类推 // 计算死亡判定的置信区间 // 游戏开始,所有玩家就位了,将房间内的玩家随机、平均分到两队 // 服务器发送到客户端的通知,就拿第一位当作消息类型的区分吧(flag) // 其中一个队的人数 // 游戏里面有4种难度不同的怪,将概率按1:2:3:4来划分,越难打的怪出现几率越低 // 位置(主要是x轴)随机,按byte表示,0-255,表示最左边到最右边,128是在屏幕中键 // [0]表示flag,这个通知是一个刷怪事件 // [1]表示队伍代号,这个怪是哪一边的(和assignTeam的分配一致) // [2]表示刷怪点x轴的位置 // 不重复下发怪物死亡事件 // 加载好了游戏场景 // 检查是否全部都准备好了 // 检查是否全部都准备好了 // 让房间真正运作起来 // 有玩家上报,发现某一个玩家死亡 // 注意,如果是敌机碰到自己,会发送两条,一条说自己被对方撞死,另一条是对方被自己撞死,这个时候都当作是汇报自己死亡 // 0: 坠机对象的no,用byte表达的话,最多兼容256人大房间 // 2: 如果是敌方玩家直接碰撞,那么对方的no是什么 // 给另外一个玩家添加一个死亡报告 // 有玩家上报,怪物死亡 // 游戏中掉线,当作死亡 // 游戏中离开房间,当作死亡
  • // 根据屏幕大小来定玩家的大小, 我们定玩家如果需要穿过整个y轴最少需要2秒,怪物需要8秒 // 其它玩家更新属性 // 其它玩家发送事件
  • 测试、发布:灰常好玩,下阶段准备做成四个阵营的玩法

在基本素材、组件(物理引擎)等预备充分的情况下,花了不到两个小时就将一个单机游戏改造成了联网对战的游戏,而且逻辑也足够健壮,效果还是很酷的。再加上SDK是开源的,有什么问题很容易定位。

总体来讲,Bmob Game SDK真正拉低了网络游戏开发的门槛,完全没有了以前庞大、繁杂的后端开发和服务器运维工作,让很多受限于资源、只能开发单机游戏的团队和项目有了新的出路~

获取Demo、SDK完整源码的方式:

加官方客服,小小琪QQ:


不管我在文章里说到什么方法,都需要你能做到一点:“自律”!如果你认为自己做不到或者根本不想做,那您就没必要看下去了,这篇文章对您没用,换句话说就是:你的问题根本就不是看多少文章能解决的,而是需要从根本上改变观念,相信——自律才会让你更自由!

微信已经成为每个人生活中的一部分,与其抱怨它占据我们太多的时间,霸占我们太多的注意力,不如正视现实,拥抱它、调教它、让它成为我们提升自己的重要工具。下面是我总结的如何用好微信的几个方法:

一、从接收信息的角度谈如何使用微信。

微信最大的价值之一就是:它可以成为有效的信息来源。

1.对于很少刷微博的我来说,微信是我了解社会热点最重要的工具,关注几个有态度有观点的公众号或自媒体,在及时了解社会热点的同时,更深入的看到事情真相,不一样的角度,更有价值的观点。

在关注社会热点的时候,我选择让微信帮我筛选出时下人们最关注的事情,这样很大程度的减少了我原来在微博上刷来刷去的是时间。

2.另一个关注时事的方法,把你微信好友了你关注的、关心的、欣赏的朋友(一定要精,不要多)标为星标朋友,就是在通讯录里置顶,只垂直看他们的朋友圈,看到好的内容点个赞,看到关心的内容评个论,这样会节省很多刷朋友圈的时间同时还顺便维系了朋友间的关系。

你如果像我一样,翻遍通讯录并没有找到可标为星标的好友,大概就说明了你的社交水平简直是烂中之烂(让我们一起在宅到死宅的路上,一去不复返吧。)

二、从学习的角度谈如何使用微信。

订阅公众号、不贪多才能学的更多。先做加法在做减法。

现在打开你的订阅号,数一数你一共订阅了多少个号。我自认为订的号真的不多,,这一数,我订阅了60多个号,好多啊......

1.我们可以广泛涉猎,然后取其精华。

我们可以把所有感觉有兴趣的、有价值的公号都订阅,但一定要定期整理,把那些并没什么价值的公众号取关,从来没有点开过的取关,只点开过一次就再也没点开的取关,这个过程就像刚开始看书一样,只有看的多了才能知道自己想要看什么。

2.主动学习当然很好,但看见什么都想学就会什么都学不好。

订阅了几十个上百个公众号,每到公号更新的时候压力会特别大,读的时候也会很浮躁,因为要看的东西太多了,所以对很多文章都是草草的看过一遍就略过了,这样下去自然不会有什么收获。泛泛的读十篇文章,还不如认真的读一篇文章,这样反而收获更大。

订阅公众号要求精不要求量,应该根据自己近阶段的目标和兴趣订阅,如果发现哪个号看不下去,一定要及时取关,不要犹豫,因为你的时间比你学到的东西更宝贵。对于订阅的内容就认真阅读,像读书一样做笔记,分享或转述给别人,在写文章的时候也可以用到,把学到的知识转化为自己的知识,建立自己的知识体系。

3.收藏也要有技巧,否则就是保存了一堆占内存的数据垃圾。

很多人都是先收藏,然后有时间在仔细阅读,可收藏后你就忘了,还谈何再看呢。

正确的做法一定要先阅读在决定是否需要收藏,如果实在看到好文章时刚好手头有急事没法阅读,也有个好办法:把文章收藏或保存到印象笔记,然后(敲黑板!重点来了)用手机设置一个闹钟,时间就设置在你每天的空闲时间,比如晚饭后,午休时间等,一定要写上闹钟的备注:阅读某某收藏文章。等闹钟响起的时候一定要立刻马上看这篇文章,不要拖延,否则神仙也救不了你了。

这一点做好你就完全可以利用3分5分的碎片时间看微信,然后用大段的时间进行系统化学习或集中处理信息。(一不小心还道出了时间管理的方法,福利,就当是福利!)


正文结束了,说一个我最近感悟出的问题:

尽可能少订或不订日更号!说说我的原因:

1.在厉害的大牛也做不到每日更新优质的文章。

2.多数日更大号都是团队完成,不同的人写出的文章味道很不一样,这会造成思维很跳跃,时不时会插播广告或互推,很影响阅读。

3.我们的阅读压力本来就不小,在日更号做不到篇篇都是优质文的情况,他的日更真的会给我们带来更大的阅读压力,那我们还关注他做什么呢!

就先写这些吧,写的太长你也看不下去,还有一些方法下次再写。

我要回帖

更多关于 简书文章发给微信好友 的文章

 

随机推荐