- 为什么激励广告没有是否播放完毕监听接口?
监听用户关闭广告只有在用户点击激励视频广告组件上的 [代码]关闭广告[代码] 按钮时,广告才会关闭。这个事件可以通过 RewardedVideoAd.onClose() 监听。 激励广告为什么没有单独的监听是否播放完毕,而只有监听用户点击关闭广告按钮功能?为什么要等用户点击关闭广告才退出广告,播放完毕自动退出不可以吗?
06-02 - 微信小游戏制作工具做的小游戏,最近很多用户banner广告位置错乱,这是什么原因?
昨天发现,部分用户打开小游戏后,banner广告位置错乱,微信小游戏制作工具的banner广告积木,可以设置居左,居中,居右,我设置的是居中,这样设置后,以前是会显示在小游戏的底部居中的,现在有部分用户banner广告跑到顶部居左,这样会挡住游戏功能,严重影响正常游戏,有部分用户banner广告跑到底部居左,我试着访问了很多其他的小游戏,发现部分小游戏也存在类似的问题,而以前是没有这些问题的,我估计可能跟以下问题有关: 1、banner广告合入原生模版广告,微信小游戏制作工具的banner广告积木与原生模版广告存在部分不兼容的问题; 2、微信版本升级,导致部分不兼容的问题。 测试了5台手机,三台错乱,两台正常,微信版本都是8.0.50,附上手机型号: 荣耀30,鸿蒙4.0系统,banner广告错乱,banner广告顶部居左; iphone 13 pro max,ios17,banner广告错乱,banner广告顶部居左; 小米11 pro,miui14,banner广告错乱,banner广告底部居左; 红米note 9,miui12,正常,banner广告底部居中; 荣耀7c,emui8,正常,banner广告底部居中。 请问是什么原因?
09-08 - 动画素材掉帧如何解决?(微信小游戏制作工具)
我弄了一个30fps的动画素材,在电脑端很顺畅,但一到手机端试玩就掉帧严重 游戏内的fps忽快忽慢,游戏体验极差,有办法克服吗? [图片]
2023-10-10 - 使用云开发做内容安全检查
效果展示 少啰嗦,看图! [图片] 需求实现分析 需求:输入违规内容,点击提交按钮,提示请注意言论。 技术方案:使用微信提供的 msgSecCheck 函数进行内容校验。 新增一个云函数 配置openapi权限 实现msgSecCheck函数 调用返回验证结果 根据结果给出提示 代码实现 新增一个 msgSecCheck 的云函数 [图片] 配置 config.json [图片] 实现 msgSecCheck 函数 [图片] 调用 msgSecCheck 云函数,根据不同结果进行处理 [图片] 总结 这里面用到了1个关键函数:msgSecCheck。 msgSecCheck:官方文档传送门 如果觉得有收获,欢迎点赞收藏~
2020-08-13 - 微信小游戏开发实战16-如何进行优化
优化这件事儿我以前很少会在意,因为一直做手机游戏,手机硬件的更新速度非常的快,更快的计算能力,更强的渲染能力,更大的内存。这就导致了如果你不是做一个大型游戏的话,几乎是不太用考虑优化的。 直到我开始做微信小游戏,作为一个小游戏是有诸多的限制的,计算能力,渲染能力,尤其是对游戏大小的限制(不能超过4M),这些限制让我不得不重新的转变一些之前做游戏的想法。 刚开始做完“精致1010”时,其实也没太在意游戏的优化,因为游戏本来就比较小,再加上使用简约的风格,素材资源比较少,所以整个游戏运行起来还是挺流畅的。但是,当我开始不停的为这个小游戏进行扩展增加更多的内容时,问题出现了。 7月4号,我更新了一个新的游戏模式:闯关模式。相当于将原有的游戏扩充了一倍的内容。 我们看一下下方的两张小游戏后台的数据统计图。这里有两项比较重要的数据: 总耗时:是指从玩家点击游戏图标到正式进入到游戏中的时间。CPU: 是指游戏运行中所需要消耗的计算量。[图片] [图片] 可以看到在增加了闯关模式之后,游戏的启动时间和 CPU 都开始上升。其中最严重的莫过于启动时间的提升,最高值达到 9 秒钟,想一个如果一个玩家打开一个小游戏需要等待 9 秒钟的时间才能进的去的话,很可能就不会再次打开它了。 针对上述的问题,我开始着手对游戏进行优化,首先看了一下官方文档的优化建议。 官方优化建议在这里:https://gamemaker.weixin.qq.com/doc/minigame/optimize.html内容相对较少,只有一些原则,缺少具体详细的指导。但是至少是有了一些方向了,于是我开始踏上了小游戏优化的旅程。 下面记录的就是我针对一个已上线的微信小游戏的优化操作。 精简游戏资源 每一个被导入的游戏资源最终都会包含在游戏的包体中,在游戏开发的过程中会导入很多的资源,包含各种的图片,音效,数字等等,有些资源最终没有被用到,这时候要仔细的检查这些导入的资源,找到并删除那些没有用到的资源,以避免它们增加游戏的大小。 游戏中的最多的资源类型就是图片,对于图片资源我们要坚持一个原则:尽可能以最小的图片达到预期的效果。 比如说游戏中的对话框背景图,原来使用的是一张 380x580 的圆角矩形图片,在等比例的缩小一倍后,最终使用了 190x290 的图片。 [图片] [图片] 虽然边角和阴影有部分的细节损失,但是总体上是可接受的,这样原来的一张大图就缩减了一半的大小。 对于图片资源的另一个原则就是:复用。只要能重复使用同一张图片的地方,那就一定要重复使用同一张图片。 [图片] 如图,在优化后的精致1010的首页中,8个按钮只使用了两种类型的图片,一个是长的圆角矩形(用于声音和震感按钮),一个是方的圆角矩形(用于剩余的所有按钮)。通过调整图片的大小和颜色,就可以做出不同的按钮了。 这里我使用的是圆角矩形, 因为圆角矩形在大幅度的放大或者缩小后,圆角处会出问题,所以使用了两种类型的圆角矩形,如果使用方脚矩形的话,那么所有的按钮复用一张图片就可以搞定了。 精简游戏逻辑 游戏逻辑指的就是我们的积木块了。 首先删除游戏中没有用到的积木。仔细检查游戏中的逻辑积木,删除无用的或闲置的游戏积木,平时对于无用的积木块要及时的删除,不要放在那里,养成好习惯。 其次还是要坚持“复用”的原则,对于重复的逻辑通过使用“函数”或者“通知”进行复用,避免多次使用重复的积木块。 使用函数来复用逻辑 举个例子,在精致1010中拖拽的方块不满足放置要求是会退回到原位置的,因为包含多种不满足要求的情况,所以有很多的“如果,否则”积木块,对于所有不满足的情况其实都重复用到了相同的两块积木。 [图片] 对于这种情况,我们就可以将重复的积木制作成一个函数。 [图片] 可以看到这个函数中设置了多个参数,这样对于所有需要移动缩小功能的地方,就都可以使用这个函数了。 最后使用函数来替换原来重复使用的积木块。 [图片] 使用通知来复用逻辑 使用函数有一定的限制,尤其是对于局部变量来说, 将局部变量以参数的形式传递给函数时,在函数内对局部变量的修改不会被保存。比如说一个局部变量 10,当作参数传入函数中,在函数内对局部变量进行加倍处理,最终结果应该是 20,但是函数执行完毕后,这个局部变量的值依然是 10,所以对于函数内处理的变量只能够使用全局变量。 那么对于需要处理局部变量的重复积木,我们可以通过使用“通知”来进行复用。 [图片] 如图,这是更换主题中的部分逻辑代码,可以看到红框框出的代码是重复使用的,这里我们可以将重复的代码放到一个通知中处理。 [图片] 对于需要用到重复积木的地方,我们只需要向自己发送一个通知即可。这样原来的这部分代码就通过复用被精简了一半。 这里有一点需要注意一下:当前的微信小游戏开发工具的积木块的数量是有上限的。 这是我前些天在增加新内容时遇到的问题,项目无法进行保存了,咨询过开发团队,才知道是代码超出了限制。 [图片] 所以要好好斟酌每一个需要使用的积木块,尽可能的以最少的积木块实现想要的功能。 另外有一点需要考虑的是,当前的代码限制决定了你将要开发的游戏的体量, 如果你想要通过微信小游戏开发工具做一个比较大的游戏,那么就需要提前考虑一下这个代码限制了。 合理规划场景 在增加闯关模式时我原来的方案是重新创建一个场景,专门用于闯关模式。这样经典模式和闯关模式两个场景就能够各自独立。在后续不论是针对哪个模式进行修改也好,扩展也好,只需要到其对应的场景中进行开发即可。 多创建一个场景,就相当于多了非常多的资源, 两种游戏模式之间,其实有非常多的东西都是可以共用的。但是,由于很多的资源和积木逻辑无法跨场景共用, 所以很多的内容就只能通过复制粘贴再创建一份了,这就导致了游戏中包含大量的重复的代码和资源。 在遇到了最大代码限制之后,我不得不重新考虑场景的规划,将这两个场景合二为一。 [图片] [图片] 如图, 我将原来的“经典模式”和“关卡模式”两个场景合并到了一个“游戏”场景。在合并之后,节省了大量的代码空间,后来才能够增加“编辑”场景,实现用户自定义关卡的功能。 这里的一点提示就是不要不加节制的使用场景, 如果能使用一个场景搞定的事情,那就不要用更多场景了。 减少游戏中的精灵数目 游戏场景中的精灵的数量决定了渲染和计算需要的消耗量。总体上来讲,精灵的数目越多需要的渲染和计算的量就越多。所以为了提升总体的性能,就需要尽量的精简游戏中的精灵的数量。 点击调试游戏,可以在“全局变量”选项中看到当前场景中的精灵数。 [图片] 如图,在优化之前,初始场景中的精灵数目是 325。虽然游戏的界面看似非常简单,但是精灵数目却非常的多。 我们的目标就是在保证游戏效果的基础上尽量的精简游戏中的精灵数目,为此我做了如下的优化。 [图片] 原本游戏中的这个 10x10 的网格是使用单个格子拼出来的, 所以画出这样一张网格就需要 100 个精灵。 我更换了一种方式,直接导入一个画好的 10 x 10 的网格图片,这样一个展示网格只需要使用 1 个精灵就可以了,这样一下就缩减了 99 个精灵。 另外游戏中的所有的形状原本都是使用单个方块拼成的,现在我直接将形状制作成一张图片,这样就又能够减少非常多的精灵。 [图片] [图片] 最终经过优化后,场景中的精灵数目减少了一百多,这还是在后续增加了新功能之后的精灵数目。 [图片] 同时从CPU的指标中可以明显看的出来,优化后,消耗大幅下降,因为更少的精灵数目,就意味着更少的CPU消耗。 [图片] 创建一个精简的初始场景 “游戏启动时间”是小游戏中的一个非常重要的指标,它意味着从玩家打开到正式进入游戏需要多长时间,通常这个时间越短越好。 决定这个时间长短的因素很多,包括游戏的大小,资源的多少,网络的状况,玩家手机的性能等等,其中大部分因素其实是不可控的,除了我们上述提到的各种优化方法之外,还有一个方式可以帮助我们提升游戏的启动速度,就是创建一个尽可能简单的启动场景。 原来的启动场景。 [图片] 新增的精简的启动场景。 [图片] 如图我为游戏增加了一个非常简单的启动场景,只包含了一个小蚂蚁的图标和很少量的积木块。这样场景的打开速度就会比原来快很多,因为需要加载的资源和积木块都非常的少。 另外,不要忘了在作品设置中选择资源在“切换场景时加载”。 [图片] 这样由于启动的场景资源非常的少,就可以很快的加载完毕并打开了,然后我们再从启动场景加载打开后面资源比较多的场景。 最后,总结一下,对于微信小游戏的优化,我们可以从下列几个方面着手: 精简游戏资源精简游戏逻辑合理规划场景减少游戏中的精灵数目创建一个精简的初始场景通过这些优化操作,我成功地将“精致1010”的启动时间和性能消耗都降了下来,希望这些优化操作也能够给你提供一些参考。 优化是一件永无止境的事情,我认为最好的优化是应该在制作之前进行的,因为一个更优的想法,一个更合理的规划要胜过这些事后的补救措施。 如果不是制作微信小游戏我大概很难体会到在各种限制之内做东西的感觉,想想当年的游戏开发者要把游戏做到 256k 的卡带上,虽然限制更大,但是依旧不影响很多经典游戏的诞生。所以,在一定的限制之内进行创作,是否更容易激发一些灵感呢? 最后,欢迎试玩我的微信小游戏作品“精致1010”,一个会不停开发和成长的小游戏。 [图片] 如果你对微信小游戏开发感兴趣,欢迎关注我的公众号:小蚂蚁游戏开发,获取更多的游戏开发教程或者与游戏开发有关的原创内容。 [图片]
2021-07-16 - 可视化开发工具多点触控问题,当多个手指按压屏幕存在多个触摸点,如何区分?
举例:当在某个场景中需要进行侦测,当屏幕上有一个触摸点时,侦测到触摸则在该触摸点克隆一个精灵并跟随该手指移动,当手指抬起触摸点消失则删除该精灵。 理想情况下:当有多个触摸点,如:此时有三个手指同时按压屏幕,应存在3个触摸点,且检测到触摸事件,进行精灵克隆,在三个手指的触摸点应分别有对应的一个克隆体。且当手指移动时,克隆体跟随移动,当某个手指抬起触摸点消失时,仅删除对应触摸点的克隆体。 问题: 1.在可视化微信小游戏开发工具中,仅有触摸事件,并未找到识别触摸点的积木。(尝试解决:使用变量解决,但无法对触摸点添加变量) 2.当仅有一个触摸点时可实现精灵克隆、跟随移动、删除克隆体等操作。但当有两个及两个以上触摸点时无法实现多点触控。即:当出现第二个触摸点时,会将第一个触摸点的克隆体抢夺。当第一个触摸点消失时,第二个触摸点的克隆体也会被删除。 需求:当有多个触摸点时,克隆体应和触摸点一一对应。如:假设此时有触摸点1、2、3,和其对应的克隆体1、2、3。当触摸点1移动、触摸点2、3不移动时克隆体1跟随,克隆体2、3不变。当触摸点2消失,触摸点1、3不变,则应克隆体2删除,克隆体1、3不变 示例积木如下: [图片] [图片]
2023-10-17 - 关于克隆体的上限
在小游戏开发工具使用中,发现在游戏后期克隆体总是莫名其妙的消失,原来工具中克隆体数量存在上限?具体什么情况有人能说明吗?游戏需要,确实需要用到大量克隆体,超2000。
2023-01-15 - 买量成本50块,然后广告费才12,平时不买量的时候,广告费都比这个高,流量主的计算是不是有问题?
如果是这种收入的话,微信小游戏真的不用做了。一点都不透明。 官方麻烦给个解答 [图片]
2023-05-11 - 个人账户广告投放买量后的游戏流水如何计算个人所得税?
小游戏个人账户,假设一个月投入了3万块钱进行广告投放,游戏一个月的流水4万,计算个人所得税的时候,是按照游戏流水的 4 万进行缴纳?还是按照净利润 1 万进行缴纳? 如果按照游戏流水缴纳个人所得税,假设一个月投入 3 万,流水3万,游戏没赚钱,那还要缴纳以3万元计算的个人所得税吗?这种个人账户进行买量具体的个税计算方式是怎样的?或者针对于这种情况应该如何进行操作呢?还望社区的大大能给予解答,谢谢。
2023-09-27 - 我有一个小游戏的点子,新手小白在实践的过程中困难重重
我在医院心电图工作,发现很多小朋友害怕做检查,他们的紧张、哭闹会影响心电图的检查效率、图形采集质量,有时哭闹造成的心率增快与疾病引起的心率增加效果会叠加在一起,影响临床医生对患儿心脏受累情况的判断,导致需要进行进一部检查的患儿产生漏检或者过度检查,导致医疗资源的浪费或患儿病情的耽误。 但是心电图检查是一个无痛的检查。我受自己小孩玩的早教游戏的启发,想用微信小游戏的方式,让小孩以医生的身份给卡通人物进行心电图检查:可以让小孩与卡通人物的互动过程体验暴露检查部位、贴电极片等步骤,以游戏的方式让孩子明白电图检查不是打针,不会产生疼痛,最终顺利完成心电图检查。 小游戏: 背景图片 音效: 场景1: 熊妈妈:熊生病了,需要给小熊做心电图检查哦 小熊:会打针吗,我怕疼 医生:不会的,就是玩贴贴纸游戏 场景2:椅子,小熊,心电图机(导线,电极片) 旁白:快帮小熊坐在椅子上吧 动作:拖动小熊做到检查椅上 旁白:帮小熊把胸脯漏出来把 动作:点击小熊衣服,衣服自动拉开 旁白:把小熊把手腕和脚腕漏出来把 动作:依次点击手腕脚腕,自动漏出 旁白:帮小熊把贴贴贴到胸部和四肢吧 动作:依次拖动电极片到胸部和四肢 旁白:你太棒了,现在可以点击按钮进行检查啦! 动作:点击绿色按钮心电图机开始出图 旁白:检查完成,可以取下贴贴啦! 动作:点击贴贴,贴贴消失 旁白:小熊真勇敢! 场景3: 熊妈妈:心电图检查完成了,小熊真是勇敢的小朋友! 动作:抱抱亲亲 特效:礼花,庆祝。。。。。 新手小白,只是抱着科普的初衷,但是小游戏开发平台中的素材好像找不到我需要的,有没有大师可以带带我,包括游戏角色怎么设置,游戏里的场景设置等。。。 一个宝妈,同时也是一名临床工作医生在这里真诚求教
04-12 - 请帮忙解决一下我的微信小游戏种子计划无法开启,请问该如何解决呢
[图片][图片][图片][图片] 申请种子计划时提示"历史无严重违规且当前不处于违规状态。违规类型包括但不限于涉政、涉黄、涉赌、侵权、欺诈、色情、绕开支付,或其他严重对抗平台规则的行为 " 游戏首次发布是2024-03-28,时间也没超过。 但小游戏并没有发生过违规行为。是为什么?
04-09 - 违反用户体验或平台规则,已被禁用? 新游种子无法申请,怎么查看原因?原因是什么
违反用户体验或平台规则,已被禁用? 新游种子无法申请,怎么查看原因?原因是什么
2023-01-18 - 新开发的小游戏没啥流量,请问新游种子这个功能,能带来多少量,小伙伴们交流一下
[图片] 已申请种子计划中的新游种子,过了好久都没啥量。之前申请过、有经验的朋友,可以分享一下。 小游戏名称: 水果乐园消一消 [图片]
2023-09-05 - 种子计划-新游种子开启后多久会给量?
昨天通过自己微信一个朋友一个朋友的推荐拿到了90来个用户. 后来晚上发现可以开启新游种子, 于是夜里4点前后开启(2024-02-06 四点左右). 到现在除了我在白天继续群里转发和一个朋友一个朋友的求仍然没有其他流量。 请问开启后多久可以得到扶持的流量,大概会是多少? 谢谢啦
02-06 - 个人主体变更为公司主体后,无法备案?
[图片] 小游戏原为个人主体,在个人主体下提交了资质材料,游戏内容介绍(一直审核中)。后来进行了主体变更,变更为公司主体,昨天收到了内容审核通过的通知,开始备案,被驳回,原因是批复文件中的主体为个人,不是当前的公司主体。 请问这种情况该如何处理呢? appId:wx72764d3205aad83a
03-27 - 小游戏主体变更报错,超过主体可注册数量上限?
[图片] 如图,小游戏在变更主体的时候报错,错误信息为“超过主体可注册数量上限”,但是要变更的主体下目前还未上线任何小游戏或小程序,所以确定是没有超过注册数量上限的,请管理员大大帮忙查明一下原因,十分感谢。 要变更的主体名称:威海蚁游网络技术有限公司。 证件号:91371000MAD571D5XP
03-04 - 【急急急】小游戏无法备案问题,能否解决?
wx1ec5e733025ef078 小游戏内容主管审核通过,但是备案按钮是灰色的无法点击备案, 换了十几台电脑登录还是不行,换了十几个浏览器还是显示不行,什么情况?能不能处理啊 [图片]
03-29 - 【流量主小程序】广告单元配置异常?
[图片] appId: wx947b1f478f867256 以下是代码: [图片] 以上代码【流量主小程序】还是会提示【广告单元未配置】
2023-12-25 - 流量主日报,出现广告单元与appid不匹配?
小游戏第一次发布未开通广告,代码填了一个其他主体开通的广告位id提审,然后第一次发布后开通了广告。这时游戏能看广告(广告id是其他主体)。流量主日报前几天正常,几天后的日报才提示广告单元与appid不匹配。然后第二次提审发布更换了当前主体开通的广告id。第二次发布5天后 流量主日报有提示广告单元与appid不匹配。请问是什么原因导致流量主日报过几天后才提示这个错误呢?日报错误提示是指前一天用户触发了这个bug吗?
2023-12-09 - 流量日报提示广告组件代码与广告位不匹配?
一个页面两个banner广告位,开发测试正常拉取广告。 第二天流量日报显示“广告组件代码与广告位不匹配” [图片] [图片] 代码: <view class="endAd" v-show="endAdShow"> <ad unit-id="adunit-e4b9ec7617903b2e" ad-intervals="30" ></ad> </view> 麻烦解答一下
2023-12-06 - 小程序不能保存图片到相册,提示没权限?
我已经更新了用户隐私保护指引,明确需要保存图片到相册功能,上一个版本还正常,这个版本只更新UI部分,但是现在保存不了图片了,在体验版里功能正常,请客服把我的保存权限还回来,要求我小程序有什么违规的地方审核可以不过呀 [图片] [图片]
2023-09-20 - 保存图片到本地,正式版使用不了,提示需要相机权限,怎么解决?
保存图片到本地,正式版使用不了,提示需要相机权限,怎么解决?但是文章中的图片长按下载可以,单独生成的分享图是没有办法下载的,提示相机权限
01-15 - 公众号改名认证命中关键词 需要提交哪些补充材料呢?
[图片]
01-11 - 我微信认证完名称,然后说我混淆别人求解决
[图片][图片] 不可能又让我花钱认证吧,明明是你们系统问题。我都搜索不到对方小游戏信息,说明别人根本没有在使用了,这不是浪费资源么。
01-12 - 如何利用场景分析统计小游戏中的数据
在游戏中我们经常需要统计一些信息,然后根据这些信息来分析玩家玩游戏的一些情况,并以此指导我们对游戏进行优化,或者根据这些数据来决定下一步的方向。 举个简单的例子,一个游戏中有两个不同的主题,一个是简约清新的,一个是炫彩斑斓的,那么此时,作为一个游戏的制作者,如果想要知道,到底玩家更喜欢那种风格的主题呢?就可以通过统计玩家选用不同主题的次数,来得出判断,到底玩家玩家更喜欢哪一个主题。 例如,在“精致1010”中我做了 6 种不同的主题,然后通过数据统计,我就可以在小程序的后台看到每种主题的使用次数,然后以此来判断哪个主题更受欢迎。 [图片] 猜一下,哪个主题最受欢迎呢? 好了, 言归正传。 小游戏端的处理 为你的小游戏增加数据统计能力,其实非常的简单。如果你使用的是“微信小游戏制作工具”的话,那么只需要使用一块积木就可以了。 这块积木位于“小游戏”类别中。 [图片] 这个积木块有三个选项,第一个是 branchId,第二个是类型,曝光还是点击,第三个是一个可选择的参数 branchDim。稍后呢,我们会讲解如何使用这 3 个选项。 [图片] 这块积木的使用方式也非常的简单,你只需要把它放到任何你想要统计数据的地方就可以了。例如,当前你想要统计游戏中的一个按钮到底被点击了多少次,就可以这样使用。 [图片] 如果你使用的不是小游戏制作工具的话,可以直接使用对应的 API 进行数据的上报:https://developers.weixin.qq.com/minigame/dev/api/data-analysis/wx.reportUserBehaviorBranchAnalytics.html好了,小游戏端并不需要做太多的工作,接下来我们就来看一下如何的配置小程序的数据统计后台。 小程序后台的设置 打开小程序后台,在“统计”,“基础数据”,找到“场景分析”。我们在小游戏中上报的数据,未来都会显示在这里。 [图片] 点击“新建场景”按钮,创建一个新的数据场景。 [图片] 注意图中的“参数设置”选项,默认是没有勾选的。如果勾选的话,就可以在上报数据的时候额外的上传一个参数(branchDim),这个参数只能是 int 类型,并且数值只能是 1~100。 [图片] 如果不使用“参数设置”,那么可以直接忽略积木块中的这个参数 branchDim。 新建完场景之后呢,就能够在“场景管理”中看到你创建的场景了。接下来,点击“获取代码”。 [图片] 然后点击“复制代码”,你可以选择复制“曝光”的代码,也可以选择复制“点击”的代码。 [图片] 复制出的代码是这个样子的,我们重点获取的是 branchId。 [图片] [图片] 将获取到的 branchId 填入积木块中的“branchId”中,然后选择是统计“曝光”,还是统计“点击”。 这里普及一下“曝光”与“点击”的区别。举个例子,当前你的游戏中有一个“看视频广告复活”的按钮,每当玩家在游戏中挂了时,就会弹出这个复活按钮,点击后,观看一段视频广告就能复活。在这样的一个场景中,每当复活按钮显示时,就是一次“曝光”。如果玩家点击了复活按钮,就是一次“点击”。所以,“曝光”的次数一定是大于等于“点击”的次数的,因为“曝光”了不一定会引起“点击”。 我们如何根据这个数据去分析游戏中的情况呢?比如说游戏中的观看广告复活按钮“曝光”了 100 次,但是只有 1 次“点击”。那就证明这个观看广告复活的方式对于玩家没有任何的吸引力。你就需要去寻找为什么会出现这样的情况,是游戏本身的吸引力有问题呢?(死了之后大家都不想复活继续玩了)还是广告的问题呢?还是其它的什么问题呢? 调试上报数据 当你配置好后台,并在小游戏中配置好对应的参数后,就可以进行“调试”了。 在开启调试前,必须先将小游戏上传,发布“体验版”。然后在真机上进行调试。 [图片] [图片] 实时的日志中会打印出实时的数据上报情况。 调试没有问题的话,就可以将你的小游戏提交,审核,发布了。 发布之后,你就可以在“场景分析”中的“数据分析”中看到你的小游戏中所统计的数据了。 [图片] *注意这里的统计数据并不是实时的,会延迟一天,也就是说你在明天才能够看到今天的数据。 了解更多与场景分析有关的内容,可以查看微信小程序官方文档:https://developers.weixin.qq.com/minigame/analysis/selfanalysis.html#%E5%8A%9F%E8%83%BD%E6%A6%82%E8%BF%B0 今天的分享就到这里了,希望它能够帮助你得到你想要得到的小游戏中的数据,然后借用这些数据进行分析,优化,决策,从而让你的小游戏变得更好。 **建议收藏这篇文章,因为你迟早会在你的小游戏中的用到的! ----- 我做的小游戏“精致1010”在这里,不去看看吗~ [图片] 另外,如果你想学习做游戏的话,关注我的公众号就对了。 [图片]
2021-10-15 - 小游戏制作工具可以连云开发么?云数据库和云函数
小游戏制作工具可以连云开发么?可以连微信的云数据库和云函数吗? 应该怎么连?
2023-12-30 - 关于设置游戏里面收费问题?
怎么设置游戏里面收费?想做皮肤收费
01-03 - 如何实现游戏中的在线计时器和离线计时器
在游戏中经常会有需要倒计时的需求,例如倒计时 10 分钟可以获得 1 点体力,倒计时 1 小时后可以开启一个宝箱,或者是根据游戏的计时获得奖励等等。 今天就分享一下如何使用微信小游戏制作工具来实现在线计时器和离线计时器的功能。 在线计时器 首先布置一下场景。 [图片] 如图的场景中,只有一个背景,以及一个基础的文字,我们将会使用基础的文字来显示倒计时。 实现倒计时功能的一个关键点就是进行时间的换算,如何将一定的“秒数”,转换成多少分,多少秒,然后最终使用“分:秒”的形式进行显示。 我们使用“除法”运算来计算当前的分钟数,然后使用“取余”运算来计算当前的秒数。 假设当前剩余的时间为 158 秒。分钟数 = 向下取整(158 / 60)= 向下取整(2.6333) = 2秒数 = 158 % 60 = 38最终就可以将分钟数和秒数拼接起来,就是“2:38”,通常分钟和秒数都会使用两位数来显示,所以需要为分钟数前方添加一个 0 ,即最终的显示时间为 "02:38" 。下面,我们就来看一下具体的实现。 首先创建几个全局变量。 [图片] “剩余时间”记录的是倒计时的总时间(以秒计),“分钟”和“秒数”记录的是根据剩余时间计算得到的分钟数和秒数,“倒计时数字”记录的最终要显示的倒计时。 接着,为“基础文字”添加倒计时的积木逻辑。 [图片] 积木逻辑并不复杂,设置了倒计时的总时间 158 秒,计算出对应的分钟数和秒数,使用拼接积木将分钟数和秒数拼接起来,最终显示在文本上。 运行一下场景。 [图片] 可以看到,我们将 158 秒换算成了 “02:38” 的形式正确的显示了。 让时间动起来接下来,我们就让倒计时动起来吧! 接着在上方的积木下增加如下的积木块,让计时器跑起来。 [图片] 我们使用了一个“重复执行”积木来处理跑动的倒计时,然后使用了一个“等待 1 秒”积木块实现了每间隔 1 秒去进行一次处理。至于时间的换算和显示则跟上方一样,如果还有剩余时间,则每隔 1 秒,处理显示一次。如果没有剩余时间了,则倒计时结束,退出循环。 运行一下,看看最终的效果。 [图片] 计时器正常跑起来了。 使用函数来复用积木块 在计时器的积木块逻辑中,关于时间换算、拼接、显示部分的积木块,其实是使用了两次,对于这种情况,我们可以把这些会重复使用的积木块放到一个“函数”中。 我们创建一个“时间换算”的函数,然后把这部分可以复用的积木块放到函数中。 [图片] 最终的倒计时的所有积木就变成了这样,看起来简洁了许多。 [图片] 实现离线的计时器通常我们在游戏中不光需要在线计时器,也需要离线的计时器。那么什么是离线的计时器呢?就是当玩家在退出游戏之后,计时器仍然能够计时。 举个例子,在“精致1010”有一个“种朵小花”的功能,玩家每隔 30 分钟就能够给植物浇一次水,通过浇水植物能够生长,并且生成金币。如果玩家在浇过一次水后,退出了游戏,然后等了 30 分钟后,再次回到游戏,此时计时应该是结束的,玩家可以再次为小花浇水。也就是说,虽然玩家退出了游戏,但是计时器并没有停止,仍然在计时,这就是离线计时功能了。 [图片] 想实现这样的一个离线计时器的功能,我们需要借助 2 个东西。 第 1 个东西是“本地缓存”功能,它可以帮助我们把游戏中的数据缓存在本地,这样等玩家下次再打开游戏时,就可以通过“本地缓存”得到之前存储的数据。(有关于本地缓存的具体使用方法,可以参见这篇文章) 第 2 个东西叫做“时间戳”,它指的是从某一时间开始经过的秒数。通常所说的时间戳指的都是“UNIX时间”。 维基百科对于UNIX时间的定义:UNIX时间,或称POSIX时间是UNIX或类UNIX系统使用的时间表示方式:从UTC1970年1月1日0时0分0秒起至现在的总秒数,不考虑闰秒。通俗点儿来讲这个“时间戳”指的就是从某一时间开始到此刻为止,一共经历了多少时间。我们怎样通过它来计算离线时间呢?比方说,我在 8 点钟退出了游戏,那么就可以在退出游戏前,把此时的“时间戳”做个记录,使用缓存功能把这个时间记录下来。然后,我 9 点钟的时候,又重新进入了游戏。这时就可以将当前的“时间戳”减去之前缓存的“时间戳”,就可以计算出离线的时间了。 这就是计算离线时间的原理了。其实并不是指游戏退出后,偷偷的在背后运行进行计时,而是通过“本地缓存”和“时间戳”这两样东西,通过计算来得到离线的那段时间。 下面,我们就来实现一下离线计时的功能。 首先,开启本地缓存的插件。 [图片] 开启之后,就可以使用与本地缓存有关的积木块了。 接着,找到获取“时间戳”的积木块,它位于“计算”类别中的“当前时间的XX”积木块中,点击下拉,可选中获得“时间戳”。 [图片] 最后,看一下实现的积木逻辑。 [图片] 我们梳理一下整个逻辑,每次进入游戏时,首先去计算一下离线时间,通过“当前的时间戳”减去“之前缓存的时间戳”,然后通过换算,得到离线时间的总秒数,然后将“剩余时间”减去“离线时间”得到最新的“剩余时间”。如果“剩余时间”大于 0 的话,就开始倒计时,否则的话就表明倒计时结束。 这里需要注意的一点儿就是倒计时中新增的两块缓存积木,每当“剩余时间”发生变化时,我们都将最新的“剩余时间”和“时间戳”进行缓存。这样,不论何时玩家退出游戏,或者是进入到游戏的其他场景,缓存中的“剩余时间”和“时间戳”记录的都是最后的那一刻。 最后,我做了一个计时器的示例项目,里面包含了在线计时器和离线计时器功能的实现,已经开源到了社区,大家可以自行获取项目进行改编或学习。 [图片] 计时器示例项目地址:https://gamemaker.weixin.qq.com/#/game?game_id=lbM2VmZjhmYmUtZGY5ZS00ZjU1LWIwYjUtOGMyYzZhNDE2Mzc4 今天分享的内容就到这里了,希望这篇文章能够帮助你彻底的搞懂在游戏中实现一个计时器的原理以及方法。 ----- 我做的小游戏“精致1010”在这里,感兴趣的话可以去看看哟~ [图片] 另外,如果你想学习做游戏的话,我写了很多的教程,关注我的公众号就对了。 [图片]
2021-09-26 - 在h5中怎么使用二维码或者url跳转到小程序?是个人主体小程序
是这样的,在h5中我想跳转到微信小程序,不管是通过二维码还是url跳转都可以,我想携带一个name参数,是个人小程序。这个需求现阶段能实现吗?
2023-10-22 - 小游戏全部二级类目和对应的三级类目哪里可以看到呢
目前只能查到小程序的,找不到小游戏所有的二级类目和三级类目的文档,是否有相关的整理呢?不知道的话,选二级类目的时候就很头疼了
2022-03-27 - 个人小程序要认证了,不然不给搜索?如果认证老师职业?
今天发版才知道,原来上传新版需要认证了,不然别想别人看到,只能自已用。 想认证一个老师,但又怕老师不好好工作,开发小程序,丢,老师也有自已的时间呀,老师这点工资,只够吃饭而已。 大家,有啥看法? 哈哈,重大好消息,刚询问过了: 个人小程序认证,个人的小程序必须是带个人名称,就是你的名字! 比如,小程序名称叫玩家日记,必须加你的名字,玩家日记容城。
2023-11-09 - 个人小程序,这个微信认证是新功能吗?
[图片] [图片]
2023-11-08 - 个人小程序开放认证了?
今天突然发现个人小程序需要认证了,不认证的话就无法被搜索也无法分享,请问官方是否有相关通知和步骤教程? [图片]
2023-10-31 - 微信认证问题
小游戏后台首页显示认证有问题,但是该小程序之前有认证过,还请运营专员麻烦看一下呢 [图片] 设置页面认证状态 [图片]
2023-10-18 - 个人主体的小游戏现在是否需要微信认证后,才能被搜索到?
我的这个小游戏目前是没有微信认证的,当前的线上版本可以被正常搜索到。我今天尝试发布一个新版本,但是弹出一个提示框,显示当前账号未完成微信认证,版本发布后将无法被搜索和分享。 如图 [图片] [图片] 请问,我如果点击发布后,是否会导致我的小游戏无法被搜索到? 假如发布会导致无法被搜索到,那我是否应该先通过微信认证,然后再进行发布呢? 还有一个问题,我个人主体下的另外一个小程序是通过了微信认证的,相同主体下的这个小游戏还需要重复认证吗?
2023-11-08 - unity开发微信小游戏(1)-将现有工程转换微信小游戏
[图片] 如果感觉文章有用的,也烦请大家多多支持(扫描上面二维码n(*≧▽≦*)n)!!❤❤❤本文章目的是快速带大家转换成微信小游戏,如有其他问题,可查看其他章节 《Unity WebGL 微信小游戏适配方案》地址: https://github.com/wechat-miniprogram/minigame-unity-webgl-transform https://developers.weixin.qq.com/minigame/dev/guide/game-engine/unity-webgl-transform.html 1、Unity版本选择 建议选择2018-2021的LTS版本 2、下载Node.js并安装 下载地址:https://nodejs.org/zh-cn/download [图片] 建议下载长期维护版 3、下载转换小游戏的UnityPackage并导入 https://res.wx.qq.com/wechatgame/product/wasm_plugin/minigame.202306051434.unitypackage [图片] 4、注册微信小游戏 不做赘述,按照要求步骤填写即可 http://mp.weixin.qq.com/wxopen/waregister?action=step1&source=mpregister&token=&lang=zh_CN 微信小游戏和微信小程序注册流程是一样的,不要被名称迷惑,注册结束后,类目选择游戏 [图片] 5、MP平台打开适配器路径:“能力地图” -> “生产提效包”,打开高性能模式,打开快适配 [图片] 6、下载安装微信开发者工具[图片] https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html、 7、复制小游戏ID“设置” -> “基本设置” -> “账号信息” [图片] 8、导出小游戏打开unity工程,将平台设置为WEBGL,导入第2步的package后,打开转换面板 “微信小游戏” -> “转换微信小游戏” [图片] 根据自己实际情况填写以上内容,图片中填写的内容为必填内容,最后点击导出webgl并转换为小游戏即可 9、小游戏发布打开微信开发者工具 1)点击小游戏,点击加号,填入导入项目的信息 [图片] 2)将游戏上传至微信MP平台(https://mp.weixin.qq.com)按照提示填写上传信息 [图片] 3)在MP平台的版本管理中可查看当前版本信息,可设置体验版,也可提交审核,审核通过后可提交正式版本! [图片] 性能优化总览: https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/main/Design/PerfOptimization.md 性能标准: https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/main/Design/PerfMeasure.md
2023-08-21 - 我建了一个独立小游戏社区群,一起加起来吧,一起沟通、运营、开发,甚至是互推、合作。
我从小就喜欢玩游戏,尤其是那些有创意和故事性的游戏。我梦想着有一天能够制作出自己的游戏,让更多的人享受到游戏带来的乐趣。为了实现这个梦想,我选择了学习计算机科学,并在毕业后进入了一家知名的游戏公司,担任游戏服务端开发者。 在这家公司,我参与了多个项目的开发,负责游戏的网络通信、数据存储、逻辑处理等方面。我学到了很多专业的技能和知识,也结识了很多优秀的同事和朋友。我对我的工作感到满意和自豪,但是随着时间的推移,我也发现了一些问题和困惑。 首先,我觉得我的工作缺乏创造性和自由度。作为一个服务端开发者,我主要是按照需求文档和设计方案来编写代码,而不是根据自己的想法和喜好来设计游戏。我很少有机会参与游戏的创意和策划阶段,也很少能够看到自己的工作成果在游戏中呈现出来。我感觉自己更像是一个执行者,而不是一个创作者。 其次,我觉得我的工作越来越枯燥和重复。随着游戏行业的竞争越来越激烈,很多公司都倾向于开发一些保守和商业化的游戏,而不是尝试一些新颖和创新的游戏。我参与的项目也都是一些类似和模仿的游戏,没有什么特色和亮点。我感觉自己在做着同样的事情,没有什么挑战和进步。 最后,我觉得我的工作越来越压抑和累人。由于游戏项目的开发周期很长,而且经常会遇到各种变更和问题,我经常要加班加点地工作,没有什么时间和精力去享受生活。而且由于游戏项目的成功与否很难预测,而且受到很多外部因素的影响,我经常会感到焦虑和不安。我感觉自己在为了生存而工作,而不是为了兴趣和激情。 因此,在经过了几年的工作经验之后,我开始重新思考我的职业规划和人生目标。我发现自己对于独立游戏有着强烈的向往和渴望。独立游戏是指那些由个人或小团队开发的游戏,它们通常不受制于商业压力或市场需求,而是完全由开发者自己决定游戏的内容、风格、玩法等方面。独立游戏有着无限的可能性和魅力,它们可以表达开发者的个性、情感、理念、想象等。 我想成为一名独立游戏人,因为我认为这样可以让我实现自己的游戏梦想,也可以让我找回游戏的乐趣和意义。我想用自己的技能和知识来制作出自己的游戏,让更多的人感受到我的创意和情感。我想尝试一些不同的游戏类型和风格,让自己的游戏有着独特的特色和亮点。我想掌握自己的工作节奏和时间安排,让自己的工作和生活更加平衡和健康。 当然,我也清楚地知道,成为一名独立游戏人并不是一件容易的事情。它需要我付出很多的努力和牺牲,也需要我面对很多的困难和挑战。比如,我需要有足够的资金和资源来支持我的游戏开发,我需要有足够的能力和经验来完成我的游戏项目,我需要有足够的勇气和信心来面对我的游戏市场,等等。这些都是我需要认真考虑和充分准备的问题。 但是,我相信只要我有着坚定的信念和不懈的努力,我就一定能够实现我的独立游戏梦想。而且,我也不是一个孤独的战士,我相信在这个世界上,一定有很多和我一样对独立游戏有着热情和追求的人。他们可能是我的同行、我的合作伙伴、我的竞争对手、或者是我的朋友。他们可能有着不同的背景、不同的专业、不同的风格、不同的理念、不同的目标,但是他们都有着一个共同点,那就是对于独立游戏的热爱。 所以,我想借此机会,向所有对独立游戏感兴趣的人发出一个邀请:让我们一起加入独立游戏的行列吧!让我们一起分享我们的创意和情感吧!让我们一起探索我们的可能性和魅力吧!让我们一起创造我们的游戏和未来吧! 如果你也有着类似的想法和愿望,如果你也想成为一名独立游戏人,如果你也寻找着志同道合的人,可以扫描进群,一起沟通、运营、开发,甚至是互推、合作。 [图片]
2023-09-12 - 小游戏备案问题:游戏内容介绍已通过审核,但无法完成后续备案流程
appid:wx55246e48e08cb628 未上线的小游戏,游戏内容介绍已通过审核,但是备案界面中游戏内容介绍这一栏,还是显示“审核中”,无法完成后续备案流程,是什么情况? [图片] [图片]
2023-09-15 - 游戏内容审核过慢导致无法进行后续备案
小游戏的内容审核过慢导致无法备案上线,影响进度,麻烦官方大大加加速
2023-09-18 - 急急急急!前往体验版无法进入
[图片][图片] 急急急急!见上图,小游戏上传代码后,通过体验版二维码无法体验,开发版可以正常进入,请问怎么解决?卡住好几天了。 试了这几个方式: 1)更换开发者工具重新上传——不行 2)用同事的其他小游戏appid上线该小游戏代码,可以正常体验,只有这个appid无法体验 3)用多个代码包提交到该appid,发现均无法体验。所以结论应该是账号问题,请求官方看一下。
2023-02-08 - 微信小程序备案过程中提示“ 暂未对存量小程序开放”?
微信小程序备案过程中提示“ 暂未对存量小程序开放”这都19号10点了还这样,啥时候备案能不能有个准信,老板一直再问,干啥啊???????
2023-09-19 - 小游戏备案问题?
小游戏提交备案一直提示系统错误,请稍后重试,请问怎么处理。 [图片]
2023-09-11 - 求大佬解答如何设置随机坐标?
小游戏制作的时候如何设置随机坐标就是让物品随机生成在自己设置好的一个网格上
2023-09-07 - 关于微信小游戏备案
不是说2023年9月1日微信小程序备案才能上线吗,而且微信官方也给了公告和指引教程:https://developers.weixin.qq.com/miniprogram/product/record_guidelines.html 根据官方给的指引,目前微信后台并没有找到备案入口和提示,什么时候才会在微信后台上线备案入口呢?
2023-09-04 - 审核时填写的游戏内容介绍在那里修改,没有找到入口?
上次的代码发布审核结果 开发者你好,经平台审核,你的小游戏《。。。。。》未通过审核,具体原因如下: 1、小游戏需具有完整的游戏玩法,不能为简单的素材堆砌 我再次提交审核的时候,发现已经找不到提交审核游戏玩法、角色等内容的页面了。不知改如何修改,害怕又被驳回。 请问修改游戏内容的入口在哪里??
2023-02-02 - 泡泡龙游戏的完整制作流程和项目模版
嗨!大家好,我是小蚂蚁。在经过了两个多周的折腾,泡泡龙游戏系列教程总算是告一段落了,今天的这篇文章主要梳理一下泡泡龙游戏的整个制作流程。 在看了整个制作流程之后,你多少都会对泡泡龙游戏的整体有一个比较全面的认识和了解。 先来看一张流程图。 [图片] 来看一下这个流程:当玩家打开游戏时,首先会去读取游戏的关卡数据,读取到数据之后,会根据这个数据来设置游戏开始时的泡泡布局,接着创建发射位置和补充位置的泡泡。到这里游戏的所有准备工作算是结束了,因为如果玩家不在游戏中进行操作,那么游戏将会停在这里,相当于待机状态。 接着,玩家开始操作游戏了,玩家点击了屏幕上的一个位置开始发射泡泡,发射器中的泡泡会被发射出去,它会移动,碰到两侧墙壁时会反弹,碰到上方的任何一个泡泡时会停止,接着开始停靠计算和处理,停靠完成之后,进行查找匹配,先找跟它颜色相同的泡泡,有满足条件(3 个相邻颜色相同)的泡泡之后,再找是否有需要“连锁消除”的泡泡。完成了两轮查找之后,若满足消除条件,则进行消除处理,再然后进行下压处理。如果下压器达到了发射器的位置则游戏结束,否则的话,进入下一轮循环。 这就是泡泡龙游戏的整个流程了,其实也就是我们制作泡泡龙游戏的流程。在你正式开始制作游戏之前,这个流程是需要清楚的,否则你可能就会遇到无从下手的情况了,这也是大多数新手开发者所遇到的情况,因为不清楚游戏的整体制作流程,所以只能想到哪里做到哪里,很可能做着做着就没有然后了。 相反,如果你能清楚游戏的整个制作流程,那么你完全可以将流程划分成一块儿一块儿的,而每一块儿中又可以划分出更多需要处理的事情,这样一件一件的去处理,最后再将各个块儿连接起来,这样整个游戏流程就搭建起来了。 了解游戏制作的流程还是很重要的,整个泡泡龙游戏开发系列教程基本上也是按照这个流程来进行的,在这里给大家汇总一下。 泡泡龙游戏初始化泡泡的布局处理。 使用表格设计关卡以及读取关卡数据还原关卡布局。 泡泡的发射,移动,反弹和停止。 泡泡的停靠处理。 查找匹配算法的原理和实现。 连锁消除查找算法的原理和实现。 这 6 篇教程基本上涵盖了制作一个泡泡龙游戏的绝大部分内容,至于像发射位置,补充位置,粒子效果和下压处理等内容,相对比较简单,就不打算详细讲了。如果上面这些内容你能够掌握的话,其它的部分对你来说都是小菜一碟了。 这个泡泡龙系列教程应该是全网最好的泡泡龙游戏开发系列教程了,在说这句话之前,我在全网搜索了一下,很有信心的说这应该是最好的。之所以说“应该”是因为万一还有更好的我没有找到(有这个概率的),或者以后还有更好的。 除了可能是最好的之外,这个系列教程还是免费的。这年头,这么高质量而且还免费的教程已经不多了。希望大家可以好好的利用,好好的学一下。我已经说过很多次了,消除类型的游戏就那么些东西,只要你花时间研究透一个,所有其它的就都一通百通了。 最后,除了这个系列教程之外,还有一个泡泡龙游戏的项目模版,算是一点儿增值服务吧!这个系列教程是我一边做项目一边写出来的,所以项目工程也跟系列教程相对应,如果能够一手看着教程,一手拿着项目工程对照,学习效果定会事半功倍。 这里是泡泡游戏模版的小程序码,可长按识别体验。 [图片] 有需要模版的朋友可前公众号文章获取:https://mp.weixin.qq.com/s/wFyfBs6VQJp4pxyr38BVkw --- 疯狂泡泡龙小游戏已上架,欢迎试玩。 [图片] 我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我的公众号【小蚂蚁教你做游戏】就对啦! [图片] 也欢迎加小蚂蚁微信(xiaomayi6669),交个朋友。 [图片]
2022-04-21 - 微信小游戏开发实战14-闯关模式的实现
最新版本的精致1010,新增了一个全新的游戏模式:闯关模式。今天就跟大家聊一下它的制作思路和大致的方法。 之所以制作这样的一个模式,起初的想法是这样的:原来的游戏模式一局的时间比较长,以我自己为例,进行一次游戏的时间至少要在 10 分钟以上,如果认真仔细一点儿,想玩到几千分的话,那么可能需要半个小时以上。很明显这样的单次游戏时长对于一个小游戏来讲有些太长了,但是游戏模式已经是这样了,如果想要缩短单次游戏之间,在现有的模式下只能通过增加游戏难度这种方式,但这并不是一种好的方式。 那么如何能把这样一个简单的消除游戏的单次游戏时间缩短到几分钟之内呢?答案就是创建一个新的游戏模式:关卡模式。每一个关卡玩家只需要用几分钟的时间即可完成,要么闯关成功,要么闯关失败。 基于上述的原因,我为游戏新增了闯关模式,原有的游戏模式被称作是经典模式,来满足两种不同场景下的需求,闯关模式可以在几分钟的碎片时间里玩一下,而经典模式可以用来打发一大段的无聊时间。 闯关模式其实也并不复杂,当前只增加了障碍玩法。只是通过修改了一下游戏目标,两种游戏模式就变得迥然不同了。 经典模式下的游戏目标是尽可能多的进行消除从而获得更高的分数。闯关模式下的游戏目标是尽快的消除游戏中的障碍从而完成关卡挑战。在经典模式中玩家想要获得更高的分数,需要尽可能长时间的活下去,而闯关模式中,玩家会总是想尽快的搞定这个关卡,去挑战下一个关卡。 可以看到我们只需要调整玩家在游戏中的目标,就可以达到两种差别非常大的行为结果,因此当你在设计游戏玩法时,不妨试着将游戏中的目标切换一下,说不定能带来一些意外的惊喜。 接下来是闯关模式实现的大致思路。 闯关模式与经典模式最大的不同在于游戏结束判断条件的不同, 在经典模式中,游戏结束的判断条件是检查网格中是否还有位置能够放置剩余的任何一个形状,如果没有的话则游戏结束(有关于游戏结束判断的具体实现方式,可以参考一下这篇文章)。在闯关模式中,游戏结束的判断条件分为两种,一种跟经典模式一样,作为闯关失败的条件,另一种是需要去判断游戏中障碍方块的数量,如果没有障碍方块了,则游戏过关。 在实现上只需要使用一个全局变量来记录障碍方块的数量,每当消除一个障碍方块,即将全局障碍方块的数量减 1,数量为 0 时则游戏过关。 闯关模式中,工作量最大的地方可能就是关卡设计了,起初我想到的是使用随机的方式去生成关卡,为此我制作了一个游戏原型进行测试,得出的结论是虽然随机的方式可以让一个关卡在每次进入时都是不同的,但是由于无法控制障碍块的出现位置,也就无法控制当前关卡的难度,因此随机生成关卡的方案就被否决了。最终我使用的是手动的设计关卡,每一个关卡都人工设计,以此来保证一个可控的难度曲线,让关卡的难度可以平缓的上升。 实现闯关模式最大的关键点在于数据的设置和展现。即如何将一个关卡中的障碍数据在网格中展示出来。 [图片] 如图是一个填满了数据的网格,绿色填充为 1 的方格表示关卡中的障碍块,白色的填充 0 的方格表示的空位置。我们可以通过这样设置网格中的数据来进行关卡的设计,如果一个障碍块需要消除 2 次才能移除,就直接把障碍块的数字设置为 2 即可。在设计完关卡后,只需要将网格的数据导出来,然后在游戏中加载这些关卡数据进行显示就行了。 一个关卡的数据就像这样: 0000000000000000000000021120000001001000000100100000010010000001001000000211200000000000000000000000 这是一个长度为 100 的字符串,每一个数字代表的是一个方格中的内容,0 表示空,大于 0 的表示不同的障碍块,从网格的左下方开始,依次去读取每一个数字,然后根据数字设置网格的内容就可以将一个关卡展现出来了。 可以看出来这实现起来其实并不复杂,真正复杂的地方在于如何去进行关卡设计,并把设计好的关卡变成这个长度为 100 的字符串,总不至于手动的去一个一个的设置数字吧! 为此,我专门制作了一个关卡编辑器,来处理这个繁琐的事情。 [图片] 在编辑完关卡后,将所有的数据导出到一个csv文件中。 [图片] 微信小游戏制作工具支持导入csv文件,所以很容易就能够将关卡的数据导入到游戏制作工具中,这里我使用了列表来存储游戏的关卡数据。 [图片] 最后,看一下关卡模式下的效果。 [图片] 进入游戏后,读取对应关卡的数据,然后根据数据显示当前关卡的障碍块。 手动的关卡设计,让我可以制作很多有意思的造型,例如这样的: [图片] [图片] [图片] 在制作完关卡模式后,也让我有了进一步的想法:能否将关卡编辑器做到游戏里呢?这样玩家就可以自己DIY关卡了,甚至可以利用微信的社交属性,将自己设计的关卡分享给朋友玩。 这将是这个小游戏下一步的方向。我会继续进行探索,并与大家分享。 欢迎大家前去尝试精致1010中的闯关模式,有任何的想法或者建议欢迎留言交流。 [图片] 如果你对微信小游戏开发感兴趣,想了解更多与游戏开发有关的原创内容和教程,欢迎关注我的公众号:小蚂蚁游戏开发。 [图片]
2021-07-05 - 微信小游戏开发实战15-关卡编辑器的制作以及关卡分享功能的实现
上周在制作完闯关模式后,我有了在游戏中做一个关卡编辑器的想法,让玩家可以在游戏中制作自己的关卡进行挑战,甚至可以将自己制作的关卡与朋友进行分享。 原有的关卡编辑器是使用Unity做的,因为可以方便的进行文件的读取和写入,可以将设计好的关卡数据写入到文件中,然后在将文件中的数据导入到微信小游戏开发工具中。 [图片] 现在我将这个关卡编辑做到了小游戏中。 [图片] 关卡编辑器功能已经更新到最新版的“精致1010”中了,欢迎大家前去体验。 这篇文章主要分享一下关卡编辑器的制作思路,以及如何利用分享组件将自己制作的关卡分享给朋友玩。 上一节中我们讲过,关卡模式中最重要的数据抽象就是将这个10 x 10 的网格转化成一个长度为 100 的字符串,像是这样: 0000000300200000000000021120000001001000000100100000010010000001001000000211200000000000000000000000 从网格的左下角开始,一行一行的向上遍历,这一大长串数字中的每一个数字就表示了一个方格中的状态,0 表示当前方格是空的,1 表示当前方格中的障碍需要消除 1 次清除,3 表示当前方格中的障碍需要消除 3 次才能清除。 当前最大的障碍数设置为 5 ,因为据测试需要消除 5 次才能清除的障碍已经够难了。 实现这样一个的关卡编辑器我们需要借助一个表格变量,将其设置为 10 行 10 列。 [图片] 每一个表格变量中的数字就对应着关卡编辑器中的一个格子的状态。 接着来看一下方块的逻辑。 [图片] 并不复杂,每点击一次,就将自己的障碍次数增加 1 , 超过 5 的话就重置为 0,然后将障碍次数记录在表格中的对应位置,最后再将表格数据进行本地缓存,使用本地缓存是为了记录当前关卡的编辑,以便于在下次打开游戏时能够恢复之前编辑的状态。(表格数据的本地缓存和读取操作,可以参考一下这篇文章,详细讲解了各种类型数据的本地缓存和读取的方法。) 当玩家想要试玩自己制作的关卡时,我们就直接使用这个表格中的内容对关卡进行设置即可。 [图片] 那么如何将自己设计的关卡分享给朋友玩呢? 首先我们需要先了解几块与分享有关的积木块。 [图片] 与分享有关的积木块都在侧边栏的“小游戏”中,前两个积木块分别为设置标题和图片,其中分享图片积木块允许你分享从小程序后台上传的图片。 [图片] 如图,在小游戏后台可以配置自定义转发图片,这里可以上传自己想要分享的图片,审核通过后,点击图片地址,能够获取到一个图片的链接,把链接放到“设置分享图片”的积木块中,就可以设置想要分享的图片了。 这里我们需要重点了解第 3 块积木,即“设置分享参数”,我们需要利用它来在分享中增加一些数据,比如说我们的自制关卡的数据。 参数传递的格式是“名字=值”,等号前方是参数的名字,等号后是参数的值,对于精致1010中的关卡数据来讲,传递的参数就是这样的: diy=0000000300200000000000021120000001001000000100100000010010000001001000000211200000000000000000000000 参数的名字叫“diy”,参数的值为一个长度为 100 的关卡数据字符串。 来看一下分享的实现。 [图片] 将编辑的关卡数据转换成字符串,然后设置到分享参数中,分享出去即可。 当朋友通过分享的链接打开进入游戏时,通过判断和分析分享参数,就可以去实现一些逻辑和功能了。 在小游戏栏的最下方有一个“获取分享参数”的积木,通过它就可以获取到分享的参数了。 [图片] 在进入到游戏的首场景启动时,进行分享参数的判断和设置。 [图片] 判断是否有分享参数,如果有并且满足要求的话,就将关卡数据的字符串设置到关卡编辑的表格中。如果没有分享参数的话,就是正常进入游戏。 这里注意一下,“获取分享参数”积木块获取到的参数格式是这样的: { diy:10010212111 } 很显然这是一个对象的数据格式,所以这里我们只需要使用“获取对象的值”这个积木块提取出参数中对应的值即可。 [图片] 当有分享参数时,这里我使用了一个提示。 [图片] 当点击挑战时,我们要做就是打开关卡场景,然后根据编辑表格中的数据设置关卡的障碍即可,这样朋友就能够点击分享链接试玩你制作的游戏关卡了。 这篇文章就到这里了,主要是分享了一些实现的思路,如果能够给你带来一些启发那是再好不过的了。 欢迎试玩小游戏“精致1010”,一个会不停开发和成长的小游戏。 [图片] 如果你对微信小游戏开发感兴趣,欢迎关注我的公众号:小蚂蚁游戏开发,获取更多的游戏开发教程或者与游戏开发有关的原创内容。 [图片]
2021-07-09 - 游戏设计怎么学?要学什么?新手应该如何入门?
嗨!大家好,我是小蚂蚁。 游戏设计是一个非常大的主题,它里面包含了很多很多的东西,我之前推荐过一本很厚的书《游戏设计艺术》,如果你想系统性的学习了解游戏设计的话,这本书是个不错的选择。 不要以为读了这本书,或者任何一本书,就能把你变成游戏设计师,更别提想当优秀的游戏设计师了。游戏设计不是一套原理,而是一种活动,光读书当不了歌手、飞行员、篮球选手,也不能成为游戏设计师。要成为设计师,只有一条路,就是设计游戏——更精确点,是设计别人真正喜爱的游戏。上面的这段文字就是出自《游戏设计艺术》这本书,它告诉了我们想要成为一名游戏设计师的路径,就是去设置并制作别人真正喜爱的游戏。 游戏设计包罗万象,想学习又无从下手,即使你看完了一本又一本的书,学习了一个又一个的设计理论,当你真正要去做游戏的时候,仍然是茫然不知所措,这也是学习游戏设计的新手肯定会面对的情况。 怎么办呢?做呀,想尽一切办法把你设计的游戏做出来,只有当游戏真正做出来,到达玩家的手中的时候,你才能知道你的游戏设计到底做的怎么样。 设计游戏要从小开始,切莫贪大。 下面,以我自己制作小游戏的例子来介绍一下游戏设计怎么做?游戏设计没有标准答案,也没有恒定不变的流程,你会在做了一个又一个游戏的过程中,总结出自己的方法,找到适合自己的流程。下面是我的方法和设计流程,仅供参考。 我打算再次用实践验证普通人做游戏赚钱的方法论的可行性,所以计划把所有的消除游戏再做一遍。当然不是原封不动的拷贝,而是尝试在原有游戏的基础上增加一点儿新东西,验证一些新的想法。 第一个要做的游戏还是 1010,这次的游戏就不是重做了(轮子已经造好了,没有必要重复造轮子),而是在原有游戏基础上的丰富和修改。 这次主要想做的有这样的两点: 游戏面向 18 ~35 岁的女性用户(所以主题要做的漂亮)重点突出游戏中的竞争性(通过世界排行榜以及实时的排名来展现) 原来还想了更多的点子,经过考虑之后,全部砍掉了,只做好这两点就足够了。 在做游戏设计的时候,你应该多想,类似头脑风暴,想出尽可能多的点子,但是请注意,这些点子并不一定都要在游戏中实现,你需要根据实际情况来进行筛选,比如说我的实际情况就是要在一个周之内把游戏做出来,这就决定了我的时间和精力是很有限的,所以就必须要找出哪些是最重要的点子,然后把其余的全部砍掉。 不要为那些砍掉的好想法担心,把它们记录下来,以后肯定会用得到。 有了明确的目标之后,在进行游戏设计的时候,你就能够把注意力聚焦起来放在那些重要的地方上了。 在设计游戏时,我习惯绘制草图,在绘制草图的过程中,类似于我把游戏先实现了一遍。而且,在画出来的时候,你能够更加具体的描述出所需要做的功能。 游戏主页[图片] 游戏主页使用大方块,大按钮,简单明了,功能性为主。当前游戏只做一个经典模式,其它的模式先跳转到小蚂蚁的其他的已上线的游戏中。 启动页面需要根据当前玩家是否是第一次游戏来决定要切换场景启动页要调用云函数获取玩家的数据游戏页面[图片] 与原有游戏相比,界面整体布局基本不变,唯一的改动是在右上方增加世界排行榜中前三名玩家的得分。有对比就会有竞争,知道了其他玩家的得分,以及与其他玩家的差距,才更有动力获得更高的分数。 需要增加的功能: 增加更详细的新手引导,至少要引导玩家操作两步。玩家拖动形状的时候在网格中增加放置位置的提示。要获得前三名玩家的得分,需要调用云函数获取世界排行榜的数据,在玩家进入游戏场景后,发起一次云函数的调用,拿到排行榜数据后,进行显示。在游戏过程中给玩家排名提升的提醒,玩家进入排行榜前 50 名之后,得分每提升一名,显示一次排名提升的提醒。(您又超过了一名玩家,目前位于排行榜的第 n 名,可以用两个头像实现竞争效果)每局游戏共有 3 次复活机会,3 次切换形状的机会,另外再增加一次分享复活和分享切换形状的机会。游戏背景在简约风格的基础上,增加一些动态的装饰,例如飘动的云彩和气球等等,移动的要慢,不能干扰到玩家正在进行的游戏。游戏暂停[图片] 跟主页一样,功能性为主,不同功能的按钮搭配不同的颜色,游戏暂停页面可以增加对其它游戏的推荐。 游戏结束[图片]游戏结束的重点依然是要凸显出玩家的得分,以及在世界排行榜上的排名。如果排名靠前的话,就提供炫耀按钮,可以方便玩家进行游戏的分享。 按钮仍然是不同颜色不同功能,游戏结束页面跟游戏暂停页面按钮的颜色和功能要统一,例如红色按钮表示重新开始,那游戏中的所有重新开始按钮都应该是红色的。 计算玩家当前的排名并在游戏页显示排名提升的比较多的话,显示炫耀按钮排行榜面板[图片] 排行榜中重点凸显出前三名玩家的不同,可以考虑使用色彩更艳丽的背景框,头像框,头像上增加特殊的图标(金冠,银冠,铜冠)。排行榜中一定要为玩家提供分享按钮,方便玩家在想要分享的时候进行游戏的分享。 以上就是我对这个游戏做的设计,是不是很简单?游戏设计没那么难的,把你想要做的游戏画出来,然后再用文字描述出来,这个就是游戏设计了。 上方绘制草图使用的是一个叫做 excalidraw 的在线草图工具,非常好用,推荐给你。https://excalidraw.com/浏览器打开网址就能直接用,免费的。好了,以上我们讲的就是新手如何做游戏设计了。 什么?有讲吗?是不是有那种似乎讲了很多东西,但是又好像什么都没有讲的感觉? 学习游戏设计就是这样,感觉有很多东西要学,感觉已经学了很多东西,但是好像又什么都没有。 为什么会是这样呢?借助《游戏设计艺术》中的话来回答一下吧! 游戏设计不是一套原理,而是一种活动,光读书当不了歌手、飞行员、篮球选手,也不能成为游戏设计师。 所以,想要当一名游戏设计师的话,就去设计你的游戏吧!然后把想尽一切办法把它做出来! 学习游戏开发,欢迎加入小蚂蚁的年度游戏开发课,你将能学会如何设计并制作出一款自己游戏,并且通过游戏赚得睡后收入。欢迎来与一百多位同学一起学习做游戏,一起探索游戏的更多可能。【点击这里】可以了解年度课程服务详情。 欢迎关注我的微信公众号【小蚂蚁教你做游戏】,可领取原创的游戏开发学习教程资料合集。 [图片] 这里是小蚂蚁的小游戏系列,闲暇之余希望能给你带来片刻的放松和愉悦。无需下载安装,微信扫码可以直接玩啦! [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片]
2023-05-17 - 如何在游戏中做一个关卡编辑器
嗨!大家好,我是小蚂蚁。今天我们来聊聊如何做一个关卡编辑器。 关卡编辑器一直都是小蚂蚁游戏中的必备品,在做的所有关卡制的游戏中,我都增加了关卡编辑的功能。 精致1010中的关卡编辑器。 [图片] 精致点点连线中的关卡编辑器。 [图片] 疯狂泡泡龙中的关卡编辑器。 [图片] 关卡编辑功能用的人多吗?说实话,不多。但是为什么要去做呢?因为我总觉得如果一个玩家能够参与到游戏的创作中,那么这个游戏对他来讲就会变得不一样。虽然做游戏跟玩游戏是完全两码事,而且几乎 99.99% 的游戏玩家都不会去做游戏。但是,关卡编辑器仍然能够给所有的玩家一个以极低的门槛体验游戏创作的机会,这大概就是我认为一定要去做这个东西的意义。 关卡编辑器到底是怎么做的呢?接下来我们简单的说一下关卡编辑器的制作思路。 [图片] 先看一下上方的这个图片,左侧是游戏界面,右侧是数据表格,我们可以把游戏的界面进行数据抽象,得到右侧的数据表格,也可以通过右侧的数据表格构建出左侧的游戏界面。了解更多与数据抽象和关卡创建相关的内容,可以参考【这篇文章】。 关卡编辑器要实现的其实就是上方的从左到右的过程:我们提供一个可视化的易于理解的界面,让玩家可以在上面进行编辑操作,最后再将玩家编辑完的界面转换成游戏中的关卡数据。 好了,就是这么简单。 我做的三个游戏逻辑都比较简单,关卡编辑器看起来也很直观,对于那些复杂的游戏编辑器都是怎么做的呢?其实都是同样的原理,1 可以表示一个方块,可以表示一个圆点,可以表示一个颜色的泡泡,同样还可以表示一座炮塔,一块障碍,一个道具,一个士兵......一个数字可以表示任何一个游戏中的任何一个物体,所以无论是看起来多么复杂的关卡编辑器,做的其实都是同一件事情:把可编辑的游戏界面抽象成能在游戏中使用的数据。 接下来,我们了解一下在制作关卡编辑器中需要用到的一个重要的转化:表格数据和字符串数据的转化。 [图片] 如图,左侧的这一张数据表格和右侧的这一长串数字其实是“等价的”,即不论当前拿到任何一个,都可以转化成另一个,其实可以把它们当作是一种数据的两种表现形式。 [图片] 两者之间可以互相转换,表格中任意的“行列号”上的数据,都可以根据“行列号”计算出它在字符串中的位置索引。例如表格第 2 行第 1 列的的数值 2,对应的就是字符串中的第 6 个位置 2。而知道了字符串中任何一个数的“位置索引”,也能够计算出它位于表格中的哪一行哪一列。 为什么我们要把表格数据转换成一个字符串?因为字符串数据更方便存储或者传输。有了这个字符串,不论你是想要把数据保存在本地,还是上传到云端,亦或者是通过分享发送给好友(利用分享参数),就都不成问题了。 最后,关卡编辑器提供的是编辑功能,应该尽可能的简单易用。在制作泡泡龙游戏第一个版本的编辑器时,做的就不是很好用。 [图片] 如图,在编辑其中点击任何一个泡泡切换颜色,这也是延续了上两个游戏的思路,但是之前的游戏数字比较少,所以设置一个位置时不需要点击太多次,但是泡泡龙游戏中包含 8 种颜色的泡泡,也就是说,如果这个关卡中想要设置多个第 8 种颜色的泡泡,就得挨个泡泡点击 8 次,实在是有些麻烦。 在第二个版本时,我对此做了改进,想法其实是来源于绘图软件,在绘图软件中都会有一个工具条,上面放置着各种各样的工具,当你选择画笔工具时,在画布上执行的一切操作都是绘制操作,当你选择橡皮擦工具时,在画布上执行的操作就是擦除操作。借鉴了这种方法,我在关卡编辑器中也增加了“工具条”,上面摆放着各种颜色的泡泡,选中一种颜色的泡泡,在上方填充的将都会是这种颜色的泡泡。 [图片] 这样就方便多了,顺便说一下,在制作泡泡龙游戏的关卡时,我就是用这个关卡编辑器做的。 好了,今天的内容就到这里了。关卡编辑器是一个小众的功能,但是仍然有它存在的必要和价值,它能够为玩家提供一个创造的机会。不论做任何的事情,创造都是重要的,它能够让我们觉得自己所做的事情意义非凡。玩游戏会让你觉得快乐,但是如果还能够在游戏中进行创造的话,这个快乐或许就具有了更深层次的意义。 --- 疯狂泡泡龙小游戏已上架,欢迎来体验这个可以自制关卡的泡泡龙游戏,创建自己的关卡,体验设计游戏的乐趣。 [图片] 我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我的公众号【小蚂蚁教你做游戏】就对啦! [图片] 也欢迎加小蚂蚁微信(xiaomayi6669),交个朋友。 [图片]
2022-04-30 - 记一次小游戏审核不通过
自己做的一款小游戏审核没有通过,理由是“小游戏需具有完整的游戏玩法,不能为简单的素材堆砌”。反馈过两次,分别回复“建议增加关卡提示” 和 “建议素材可以丰富一些,造型功能等”。小游戏为无限关卡,游戏开始会出现一块或多块陨石供玩家控制,控制方法为点击陨石开启方向和力道的调整,松开手指则陨石开始飞行,飞行中撞击飞船可击落飞船。游戏背景在游戏开始时随机生成,不可移动。但是陨石可以穿过屏幕边缘从相反方向出现。如果陨石被飞船子弹击中,会碎裂成几块小型陨石,玩家可以继续操控小陨石攻击飞船。当所有陨石被飞船击中后游戏失败,玩家可以选择重新开始。可被攻击的飞船有五种,从游戏开始每隔固定时间随机地点刷新飞船。当每一关飞船被全部击落后,选择过关奖励后进入一下关,敌人的种类和数量会相应增加增加。游戏画面如图, [图片] [图片] [图片] [图片] 我觉得游戏玩法虽然简单,但是有明确的目标,操作方法和规则,可以算是“完整”的。素材的堆砌我是想不明白,是敌机种类太少,还是画面太单调?希望可以得到大家的建议。
2023-04-06 - 强大的可视化工具-(2)平衡大师(无尽的平衡下落、无尽的闯关模式、自定义的冒险关卡)
强大的可视化工具-(2)平衡大师之送宠物回家 开发游戏最重要的是游戏的设计和编程思路,引擎只是辅助工具。 年前开始接触小游戏的可视化工具后,便觉得这是一款非常适合开发小游戏的工具,几款游戏做下来,更觉如此。工具虽然有很多隐藏的坑,但总体还是非常好用的,简单方便。还是那句话 “用最简单的工具,做最好的游戏” 。 下面我来介绍一个用微信小游戏开发工具,开发 无尽版 “平衡大师” 的案例(无尽的平衡下落、无尽的闯关模式、自定义的冒险关卡),欢迎交流、指正。 [图片] 感兴趣的朋友可以先体验一下,#小程序://平衡大师/Y5foxJfxObUI0FC [图片] 工具的应用不多说了,总结一下几个开发经验,和大家分享 无尽的关卡—表格的应用列用表格,定义我们需要的方块信息、方块组信息 [图片] [图片] 方块信息-定义38种方块体,对应精灵的38个造型 [图片] 方块组信息,预定义大量的方块组合信息,设置好组合的难度系数。 [图片] 游戏开始后,随机选取组合,放置在表格中指定的位置。前10个关卡预设定好,后面的关卡随机生成,这样就形成了无限的关卡模式。 2. 无尽的下落--物理行为的应用 无尽模式中,在消除下落的同时,屏幕外根据到宠物的距离,不断产生新的方块组合,这样就形成了无尽的下落模式。 同时,我们也可以用表格定义好方块的配色方案、宠物精灵的造型属性、边框的造型属性。毫无疑问,表格是小游戏开发,扩展性方面最方便的应用。 [图片] 3. 自定义的冒险关卡--- [图片] 在精灵素材中,建立好模式模式的目录,搭建 相关精灵的积木。 冒险模式的关卡可以无限扩展,所有关卡,不需要单独写任何代码,只需要拖拽精灵到场景位置。根据你的想象,设计出自己的关卡。 [图片] [图片] [图片] 最后同样用一个表格,定义好冒险模式的对应关卡,答案提示信息等。 [图片] 先分享这么多,欢迎交流、指正 。 欢迎大家关注ERIC的小游戏系列,闲暇之余放松一下。无需下载,微信扫码即玩。微信下,长按图片,识别点击打开。 保卫蘑菇,塔防类,抵御怪物们的攻击,无限关卡,休闲挂机。 [图片] 昆虫危机,射击类,蠢萌蠢萌的昆虫军团来袭,拿起武器保卫动物星球。 [图片] 平衡大师之萌宠送回家,消除下落,闯关模式、冒险关卡,谁是今日王者? [图片] 经典1010大作战:经典1010消消乐,500关个性关卡等你来挑战。 [图片] 贪吃蛇全民总动员:贪吃蛇来了,一起闯关、一起战! [图片]
2023-04-22 - 强大的可视化工具-(1)经典1010(伪联机对战与合作版本消消乐/500关个性关卡)
强大的可视化工具-(1)经典1010 我一直认为,开发游戏最重要的是游戏的设计和编程思路,引擎只是辅助工具。 从年前开始接触小游戏的可视化工具后,我便觉得这是一款非常适合开发小游戏的工具,几款游戏做下来,工具虽然有很多坑,但还是非常好用的,简单方便。很适合那句话“用最简单的工具,做最好的游戏”。 下面我来介绍一个用微信小游戏开发工具,开发经典1010的案例(伪联机对战与合作版本消消乐/500关个性关卡),欢迎指正。 [图片] 感兴趣的朋友可以先体验一下,#小程序://经典1010/tLV8Pq29vBOrxDC [图片] 工具的应用我就不多说了,总结一下几个开发经验,和大家分享 1.列表的应用--闯关地图 [图片] 在列表中的每一行代表着一张闯关地图,数字代表着方块。关卡开始是,解析一下关卡地图,附加上每一关卡的预设的初始方块、提示、方块组合、限定时间等信息。 [图片] 这里分享一个地图编辑最简单的EXCEL应用,以前做的俄罗斯方块、推箱子、坦克大战的地图都是用EXCEL直接编辑,生成字符串。用小游戏工具做1010消消乐关卡也不例外,生成了每张地图的字符串,再用excel的行转列复制出来,直接导入小工具的列表中,批量做关卡,简单方便,省去了开发个小工具的时间。500关卡就是EXCEL的500列,不含地图的创意时间,几个小时就完工了。 [图片] 2.方块的旋转变化 近40种方块体,4个方向的旋转变化,只需要放在一个精灵里,切换造型,结合工具提供的旋转方法就可以实现了。 [图片] 不同方块的组合,形成俄罗斯方块、异型方块各种模式,产生不同的难度变化。 3.伪联机的对战与合作模式 利用电脑算法,模拟联机对手,采用几种算法难度,达到匹配对手的等级随连胜次数的增加而增加的效果。 [图片] 根据不同的策略,可以产生 对战模式和合作模式。尽可能的把不同模式的变量都参数化,这样所有游戏模式都可以公用一个主代码。 4.主题背景结合动画 [图片] [图片] 利用一个精灵,切换雪花、树叶、气泡等图片,产生飞雪、落叶效果。 [图片] 先分享这么多,欢迎交流、指正 同时,也欢迎大家关注ERIC的小游戏系列,闲暇之余放松一下。无需下载,微信扫码即玩。微信下,长按图片,识别点击打开。 保卫蘑菇,塔防类,抵御怪物们的攻击,无限关卡,休闲挂机。 [图片] 昆虫危机,射击类,蠢萌蠢萌的昆虫军团来袭,拿起武器保卫动物星球。 [图片] 平衡大师之萌宠送回家,消除下落,闯关模式、冒险关卡,谁是今日王者? [图片] 经典1010大作战:经典1010消消乐,500关个性关卡等你来挑战。 [图片] 贪吃蛇全民总动员:贪吃蛇来了,一起闯关、一起战! [图片]
2023-04-22 - 审核被拒: 不能为简单的素材堆砌,审核人员建议我增加关卡或者商城功能。很奇怪后台人员审核的标准
上传了一个消除类游戏,游戏属于无限关卡的,也没有打算售卖道具。结果后台审核人员,一直审核不给通过,原因说是: 不能为简单的素材堆砌,让我增加关卡或者商城功能。很奇怪后面审核的标准哦,估计审核人员都没有玩一下游戏就直接给审核不通过了。个人感觉游戏有趣味性和益智性,为什么非要有关卡和商城呢? 附上我游戏的玩法说明: 七彩连珠游戏,在9*9 的棋盘里,将5个或以上相同颜色的彩球连成直线,横、竖、对角均可,则彩球消失并得分,每次连成线的彩球越多,得分越多。玩家每轮移动一个球,如果此次移动没有消掉彩球,棋盘上将随机产生3个新的彩球。当整个棋盘满后,游戏结束,后悔功能不能连续使用,每次使用会扣除30分。
2023-07-17 - 种子计划-新游种子开启后会给多少量?
[图片] 昨天发布后只有34的注册量 我怀疑其中大部分是我微信群转发的 所以新游种子一般会给多少量呢?能上1K吗? 我看之前群里有人换皮的一天就给了2K
2023-06-25 - 如何做一个泡泡龙游戏(一)
嗨!大家好,我是小蚂蚁。从今天开始,我将会用几篇文章讲一下如何制作一个泡泡龙游戏,泡泡龙是一个传统经典的消除游戏,也是一个经久不衰永不过时的游戏。 这篇文章我们主要来了解一下如何设置泡泡龙游戏的初始布局。 [图片] 如图,是一个泡泡龙游戏的布局,可以发现它跟其他的消除类游戏还是有一些不同之处的。在其他的消除游戏中,行和列通常都是规则的,例如 1010 游戏中 10 行 10 列的布局。但是在泡泡龙游戏中,行和列不是规则的,比如说第 1 行有 5 列,第 2 行有 4 列,第 3 行 5 列,第 4 行 4 列..... 虽然,行和列是不规则的,但还是有一定的规律的,就是 1,3,5 的奇数行比 2,4,6 的偶数行多出一列。 要创建一个泡泡龙游戏的布局,其实就是需要根据当前的行号和列号去设置每个泡泡的位置,之前在消除游戏系列教程中已有讲过,这里我们就跳过一些琐碎的步骤,直接跳到推导结果。 [图片] 如图,这里是一个重点的地方,即行间距如何计算,从排列图中可以看到,第二行的圆跟第一行的圆之间是有一定的交叉的,所以第二行和第一行的距离并不等于圆的直径。那行间距到底是什么呢?注意看图中标注出的那个直角三角形,第二行和第一行的间距其实就是这个直角三角形的较长的直角边的长度。 还记得曾经学过的与直角三角形有关的三角函数吗?什么?早就还给老师了。没关系,可以去先查一下,我就是用到的时候现查的,没什么不好意思的。 这里我们其实已知的是斜边的长度,即一个圆的直径,另外也知道上方的角度是30度,计算长的直角边的长度,这里用到的是余弦函数,已知斜边的长度和角度,可以计算出直角边的长度。 接着,我们来看一下已知条件,以及最终的结果计算公式。 [图片] 这里需要注意的是,在计算水平方向的 x 坐标时,需要根据当前所在的是奇数行还是偶数行使用不同的计算方式。 在掌握了理论基础之后,接下来只需要使用相应的逻辑来完成这个计算就好了。 首先,我们来布置一下场景。 [图片] 非常的简单,只有背景,一个“泡泡”和一个“初始化泡泡”(我们把克隆泡泡的逻辑放在这上面)。 接着,创建一些全局变量,用于后续使用。 [图片] 可以看到这里泡泡的直径,行数,列数,起点的位置x,y,都是已经的条件。 接着,来看一下“初始化泡泡”上的克隆泡泡的逻辑。 [图片] 使用一个双重循环一行一行的克隆泡泡,这里需要注意的是奇数行和偶数行的区别,偶数行创建的泡泡数量要比列数少一,这里我们使用了取余 2 的计算来判断是奇数行还是偶数行(什么?不知道什么是取余计算?快点儿去查一下)。 最后,来看一下“泡泡”上的逻辑积木。 [图片] 就是根据我们上方的推导公式计算并设置泡泡的 x 坐标和 y 坐标。这里注意一下,奇数行和偶数行的x坐标的计算公式有差异。 预览一下场景。 [图片] 这样,我们就创建了一个 6 行 6 列的泡泡龙游戏初始化的布局了。 在所有的消除游戏里都存在这样一个过程,即正向推导和逆向推导。上方我们讲过的这一系列过程就是正向推导,我们根据一个泡泡的行号和列号推算出了它游戏界面上的位置(即游戏世界坐标系中的 x 和 y 坐标)。 接下来,我们来看一下逆向推导,即已知当前游戏世界坐标系中的一个点的 x 和 y 坐标,推算出当前点击的这个泡泡的行号和列号。 [图片] 推算公式在这里了,主要有两点儿需要注意的地方,第一个是在计算列号时,奇数行和偶数行的计算公式不同。另一个是用到了四舍五入,保证了只要这个坐标位置位于这个圆的区域之内,那么它就是位于这个圆上。 建议你在纸上把图画出来,然后对照着公式去带入理解,验证。每次涉及到计算时我都会使用这种方法,而且屡试不爽。现在理论具备了,接下来我们就在游戏中实现一下这个逆向推导过程,我们实现一个这样的示例:任意点击某个泡泡,然后根据当前点击的位置,推算出当前点击的是哪个泡泡。 这是加在背景上的积木逻辑。 [图片] 虽然看起来很长,但是其实很简单。就是根据当前手指在屏幕上点击位置的 x,y 坐标,推导出泡泡的行号和列号,最后向所有的泡泡发送一个通知。 最后,再来看一下泡泡的完整积木逻辑。 [图片] 在克隆泡泡时,我们使用两个局部变量(行号和列号),记录当前泡泡的位置,然后在接收到“动一下”通知时,用这两个变量来判断当前点击的是否是自己,是的话就“弹出”一下。 最后,我们来预览一下。 [图片] 点击哪个泡泡,这个泡泡就会动一下。注意,这里当我们点击一个泡泡时,整个过程是这样的:根据当前点击位置的 x,y 坐标,计算出当前点击的时哪一行哪一列的泡泡,然后给所有的泡泡发送了一个“动起来”的通知,接到通知后,行号和列号都等于计算出的行号和列号的那个泡泡,会自己动一下。 好了,今天的内容就到这里了,我们学习了一下泡泡游戏的初始布局如何设置,然后了解了正向推导和逆向推导的过程。如果你看过我之前写的与消除游戏有关的教程,大概就能看出来,在所有的消除类型的游戏中,有些东西是相通的,例如初始的布局,正向推导,逆向推导的过程,对于泡泡龙这个消除游戏来讲只不过是稍有差异而已。 理解这些东西最难的地方或许就是那几个数学计算公式,见过很多人一提到数学公式就头大。其实完全没有必要,这些数学计算其实并不复杂,最多不过初中的数学知识,而且即使你全忘光了也没什么关系,完全可以在用到的时候搜索一下某个公式是什么意思,就可以了。 真正让你头大的其实并不是这些数学知识有多难,而是因为你从未尝试过好好的坐下来,拿出一张纸,画出一个图,然后慢慢的分析和理解。 相信我,这并不是浪费时间,所有的消除类型的游戏中有一些东西是完全相通的,只要你深刻的理解并搞清楚一个,以后就会一通百通了。 有的时候一件时间把我们难倒并不是因为这件事情本身太难了,而是因为我们太懒了。 --- 我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我的公众号【小蚂蚁教你做游戏】就对啦! [图片] 也欢迎加小蚂蚁微信(xiaomayi6669),交个朋友。 [图片]
2022-03-31 - 先移动还是先计算
嗨!大家好,我是小蚂蚁。 今天我们分享一下游戏中物体运动时会遇到的一个问题,这也是我在制作泡泡龙游戏时所遇到的一个问题,即到底是应该先移动后计算,还是应该先计算后移动。 [图片] 如图,游戏中的物体移动是一帧一帧的,即每一帧移动一定的距离,游戏通常在 1 秒钟内会执行 60 帧,所以每帧的时间是非常短的,因为人眼会有视觉停留,所以我们看到的游戏中的物体是在连续的移动,这个就是游戏中物体移动的基本原理。图中的蓝色的球在竖直的向上移动,每一帧移动 40 的距离。 接下来我们来看一下问题:假设球在 0 的位置上向上移动,每帧移动距离为 40,现在想要让球在 100 的位置停下来,该怎么处理? [图片] 如图,球从 0 的位置开始移动,第一帧移动到 40 ,第二帧移动到 80,第三帧移动到 120,现在想要让球在 100 的位置停下来,有两种方案。 第一种让球先移动,在每一帧移动完成后做个判断,如果位置超过了 100,那就让球退回到 100。 第二种先计算球将要到达的位置,如果这个位置超过了 100,那就将位置设置到 100,然后再让球开始移动。 两种方案对应的过程其实是这样的。 [图片] 为了更直观的演示,我们直接做一个示例来看一下。 布置一个简单的场景,红球表示先运动后计算,蓝球表示先计算后运动,上方有一条目标线,游戏开始后,两个小球向上移动,到达目标线停止。 [图片] 先看一下红球的积木逻辑。 [图片] 接着再看一下蓝球的积木逻辑。 [图片] 这里为了便于观察两个球在到达目标位置时的移动过程,我使用了“等待1秒”积木,这样可以看到小球最后一帧的调整过程,预览一下场景,看看结果。 [图片] 红球越过目标位置,然后向后调整。蓝球会在目标位置前调整,然后再达到目标位置。 在泡泡龙游戏中原来使用的是先移动后计算的方式,这样带来了一个问题,就是发射的泡泡到达停靠位置时,总是有一个“先跑过后拉回”的过程,不发现还好,在发现了之后,你总是会特别关注这一过程,越看越明显,而且还为此多了一种担心,万一跑过了拉不回来了怎么办? 为了解决这种不适感,我决定对发射泡泡的移动过程进行改造,改用先计算后移动的方式。改完过后终于舒适了,再也不用担心发射的泡泡跑过头了,因为在正式移动开始之前,我们已经知道了要达到的位置。 [图片] 这个其实也叫计算过程前置,可以让我们有机会在移动真正开始之前,先对要达到的位置进行判断和处理,在确定好目标位置没有问题了之后,再前进。 其实所有的抽奖类型的程序,在你点击开始抽奖按钮的那一刻,结果就已经计算出来了。后续不论是何种类型的抽奖都是对于既定结果的演示而已,这就叫计算前置,所以当你下次盯着抽奖转盘的时候,心态就会平和很多。大多数时候并不是差一点点就中奖了,而是有人想让你认为差一点点就中奖了。 关于发射泡泡的移动处理大家可以参考【这篇教程】,当然那篇教程里使用的移动方式是“先移动后计算”,看了今天的文章后,不妨思考或者尝试一下,把之前的移动方式改成“先计算后移动”。 这里是泡泡龙游戏模版的小程序码,可长按识别体验。 [图片] 获取模版可前往公众号文章:https://mp.weixin.qq.com/s/ioas1n-S5pIAumYTDX_z9g --- 疯狂泡泡龙小游戏已上架,欢迎试玩。 [图片] 我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我的公众号【小蚂蚁教你做游戏】就对啦! [图片] 也欢迎加小蚂蚁微信(xiaomayi6669),交个朋友。 [图片]
2022-04-24 - 关于泡泡龙游戏的一点儿总结,以及分享一个好方法
嗨,大家好,我是小蚂蚁。 不少人都问过这样的一个问题:你做一个游戏需要多长时间?通常我的回答都是:不好说,看情况。 游戏是一种虚拟的产品,它很难被量化,也很难像工厂流水线生产实体产品一样的去生产。因为其中涉及到的情况太多太杂,如何衡量一个游戏的体量?怎样的游戏算是大游戏,怎样的游戏算是小游戏呢?如何判断一个游戏是做完了还是没有做完呢?如何衡量一个游戏开发者的水平呢?……等等等等。这里面的每一个因素都是一个变量,这么多的无法确定的变量合在一起,想要得到一个确定的结果,很显然是不太可能的。 所以做一个游戏需要多长时间呢?答案只能是:看情况。 看了一下泡泡龙项目开始制作的时间,是2022年的3月30日,昨天(2022年5月10日)我对其做了最后的一个大版本更新,在这个版本更新完成之后,基本上将所有我想要做的东西都做完了,这个时间可以算做游戏的结束时间。 总的算下来是将近一个半月的时间。虽然我并不是所有的时间里都在制作这个游戏,但是这 40 多天对于我来讲就是这个游戏的制作周期。 做开发的人经常会高估自己的水平,低估自己所需要用的时间。因为很多细枝末节的东西在正式开始做之前是察觉不到的,另外,除了工作之外,还需要很多的时间去做其他的事情。以为自己可以把全部时间全情的投入到一件事情上,绝对是一种错觉。所以当你下次信誓旦旦的制定日期计划时,不妨将你计划的时间再加上几天,相信我,即使算上了加上的时间也不一定够用。 接下来跟大家分享一下,在这次泡泡龙游戏的更新过程中,我借鉴并使用的一种很不错的方法。 这个方法来自于两位很厉害的人,一位是7-11零售店的创始人铃木敏文,之前读过他的《零售的哲学》一书,他提出的一个非常有效的做事方法是“假设,执行,验证”,即主动思考,建立假设,再以实际的经营数据验证假设的流程,然后循环往复这个过程。 另一位是刘润老师,最近在读他的新书《底层逻辑》。其中也有分享类似的方法,即“假设——验证——结论——调整”。就是在遇到问题时先大胆假设,然后去验证得出结论,最后根据结论作出调整。 这两位厉害的人的方法可谓是不谋而合,可见这种方法是经得起考验的。在泡泡龙游戏的更新过程中,我就尝试着去使用了一下这样的方法:先去设想一下增加怎样的功能或者做出怎样的调整,能够得出什么样的结果,然后在游戏中收集一些数据,版本更新上线后,通过收集的这些数据来验证自己的假设。 对于整个更新的过程,我做了简单的记录。 [图片] 我觉得这是一个非常不错的方法,尤其是应用于游戏的开发中。对于很多的事情来说,在你作出假设并行动之后,可能很难收集到相应的数据来对之前的假设进行验证。但是作为一个游戏开发者来讲,我们可以很容易的通过在游戏中增加一些统计数据,来根据这些数据分析验证先前的假设。(想了解如何在游戏中增加数据统计功能,可以看一下之前写的这篇教程) 最后,简单的说一下这个泡泡龙游戏中让我觉得最有价值的两个地方。 一个是我为这个游戏增加了一个关卡编辑器,希望能够让玩家以极低的门槛来体验一下游戏的设计和制作,据统计使用的人并不多。但是我认为这个东西仍旧是有价值的,它或许能让少数的玩家在游戏中做出真正的分享行为(至于什么是真正的分享,可以看看这个),或许也能让极少数的玩家体会到游戏制作的乐趣。还有一点是这很可能是唯一一个可以自己制作关卡的泡泡龙游戏。 另外一个是游戏中的解压模式,这种模式其实没有什么游戏性,因为每个关卡中的所有的泡泡颜色都相同。你只需要点击一下屏幕,就可以一次性的消除所有的泡泡。解压模式并不提供游戏性,而是帮助玩家解压的。当你看着一整个屏幕的泡泡同时炸裂的时候,希望你所承受的那些压力也会一点一点的裂开。 不知道你发现了没有,游戏开发者所在意的点和玩家所在意的点是有很大差异的。就如同在这个泡泡龙游戏中我觉得比较有意义的两个地方,其实使用的玩家并不多,或者说很少。 这其实是一件很有意思并且值得思考的事情。那就是作为一个游戏的开发者可以成为自己游戏的玩家吗?或许吧。因为我在玩自己的游戏时,一般都会假装自己是一个玩家,然后不停的告诉自己: 忘记你是一个开发者,把自己当做一个纯粹的玩家来体验游戏。但是实际上是不可能的,就好像让一个魔术师假装自己是观众,然后来看自己的魔术。因为他已经知道背后的原理和真相了,不论魔术表演的怎么样,都无法再给他带来意外和惊讶了。 作为一个游戏开发者,你可能永远都无法在自己的游戏中体验到那种你想让其他人所体验到的东西。这个真相听上去好像有点儿“残酷”,但是(当然会有但是了),你有了另一种“魔力”,这种“魔力”让你可以创造出一种体验,然后通过游戏,把这种体验带给很多的人。 而这,就是创作游戏的魅力所在吧! --- 泡泡龙游戏在这里,欢迎试玩。 [图片] 我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我的公众号【小蚂蚁教你做游戏】就对啦! [图片] 也欢迎加小蚂蚁微信(xiaomayi6669),交个朋友。 [图片]
2022-05-13 - 微信小游戏 wx.getUserInfo需要先wx.onNeedPrivacyAuthorizati
首先看了这个帖子https://developers.weixin.qq.com/community/develop/doc/000c489ee94120360330bacb66b000 [图片] 上边是帖子内的解决方法 可是我是cocos引擎写的啊 我上哪去给按钮这几个属性啊 [图片] 看了一下午社区跟其他论坛 都是小程序方面的 处理结果也都是大同小异 [图片] 官方文档说用<button open-type="agreePrivacyAuthorization"> 我用cocos写的游戏怎么用<button open-type="agreePrivacyAuthorization">啊 实在是没整明白 来个大佬或者官方解答解答 我只是想获取一下用户头像昵称做排行榜的排名啊
2023-08-30 - 微信小游戏制作工具 默认资源进度条与微信朋友权限 的问题
你好, 有两个微信小游戏制作工具使用中的问题,请教下官方 问题1: 作品设置中的 默认加载进度条无法取消勾选,取消勾选,保存设置,勾选会重新打开,因此上线后会出现如下界面 [图片] 请问这个设置可以取消吗,如果是为了引擎初始化,防止用户丢失,是否可以定制化呢? 问题2: 使用小游戏制作工具后,一上来会要 微信好友,很多使用此工具开发的游戏都要,如图 [图片] 请问这个是否可以取消权限请求,如何设置呢? 上面两个问题在文档中暂时没有找到,希望给解答下,谢谢~
2023-05-09 - 微信小游戏制作工具制作的游戏,上来弹出 申请微信朋友信息 的授权弹窗,怎么删除?
你好, 请问 微信小游戏制作工具制作的游戏,上来弹出 申请微信朋友信息 的授权弹窗,怎么删除? 游戏一上来,就弹出这个授权弹窗,很不友好,也不是微信官方审核人员鼓励的方式, 在开发过程中,没有使用这个授权,更不清楚通过什么方式,触发了API,需要这个前置授权;另外,同意和拒绝对于游戏没有任何影响;清理缓存,看了下小游戏制作工具 官方公众号里的示例,同样的一上来就要微信朋友信息的授权, 问题: 如果阻止出现授权呢?是哪里触发了授权呢?现在因为要提审,需要完善《小程序隐私保护协议》,写没用用户授权不对,写用了的话,不清楚收集微信朋友信息的用途是什么。 希望官方或者哪位提审过游戏的朋友,给指点一下,谢谢~
2023-03-15 - unity开发微信小游戏(5)- 微信好友排行榜
效果展示: [图片] 如果感觉文章有用的,也烦请大家多多支持(扫描上面二维码n(*≧▽≦*)n)!!❤❤❤ unity开发微信好友排行榜可以说是把我虐的体无完肤,但为了拿下这功能,硬壳了三天,把我所踩过的坑分享给大家,以下为好友排行实现,群排行实现方式类似 无废话,干活分享,对照一步步做即可实现,不明白的小伙伴欢迎留言~~~ 1、勾选好友关系链[图片] 打包时要勾选使用好友关系链,这样打包的时候才会把开放数据域(以下做介绍)打到工程中 2、添加开放数据域渲染库 unity开发微信小游戏需要添加开放数据域渲染库,否则打包完上传MP平台的时候会报错 添加地址:http://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wx7a727ff7d940bb3f&token=&lang=zh_CN 3、实现方式看一下官方建议 [图片] 所以大概流程就是使用 wx.setUserCloudStorage()将当前用户的游戏数据托管在微信后台,然后再使用wx.getFriendCloudStorage()获取一个对象列表,即为好友列表,包含好友信息和成绩,但wx.getFriendCloudStorage()在For unity的sdk中是不存在的,因为只能在开放数据域中使用 4、主域和开放数据域主域:主进程作用域 开放数据域:是一个封闭、独立的 JavaScript 作用域。开放数据域是微信端特有的功能,使用它可以让开发者创建一个“子域”,并且只有在这个“子域”中,才能拿到用户相关的数据。 也就是说,在主域中写主要的逻辑,在开放数据域中获取好友信息然后渲染列表,那么主域和开放数据域之间是怎样通信的呢 5、主域和开放数据域之间的通信主域 -> 开放数据域 主域使用WX.GetOpenDataContext().PostMessage(msg);向开放数据域中发送消息,开放数据域通过wx.onMessage监听来自主域的消息 开放数据域 -> 主域 [图片] 主域只能通过sharedCanvas与开放数据域“通信”,开放数据域将数据渲染在sharedCanvas上,然后主域将sharedCanvas渲染到屏幕上 ★就是说开放数据域中写样式和获取数据,渲染在sharedCanvas中,然后unity端将sharedCanvas渲染在canvas上,以此来完成微信好友排行的功能 6、unity需要做的工作了解完环境配置,实现逻辑和定义以后,下面开始着手实现好友排行,微信伙伴为我们封装好了大部分功能,所以实现起来还是很简单的,就是过程可能会碰到很多坑 1)新建一个canvas,渲染模式一定要是Overlay,或者其他模式但不能使用相机渲染,否则会有不能滑动的后果(土亢) 2)新建一个空对象,添加RawImage 3)拖入一张图片,TextureType设置为Sprite(2D and UI),拖入到RawImage中 4)在需要显示好友排行的时候,使用WX.ShowOpenData()设置显示的区域 // 注意这里传x,y,width,height是为了点击区域能正确点击,x,y 是距离屏幕左上角的距离,宽度传 (int)RankBody.rectTransform.rect.width是在canvas的UI Scale Mode为 Constant Pixel Size的情况下设置的。 /** * 如果父元素占满整个窗口的话,pivot 设置为(0,0),rotation设置为180,则左上角就是离屏幕的距离 * 注意这里传x,y,width,height是为了点击区域能正确点击,因为开放数据域并不是使用 Unity 进行渲染而是可以选择任意第三方渲染引擎 * 所以开放数据域名要正确处理好事件处理,就需要明确告诉开放数据域,排行榜所在的纹理绘制在屏幕中的物理坐标系 * 比如 iPhone Xs Max 的物理尺寸是 414 * 896,如果排行榜被绘制在屏幕中央且物理尺寸为 200 * 200,那么这里的 x,y,width,height应当是 107,348,200,200 * x,y 是距离屏幕左上角的距离,宽度传 (int)RankBody.rectTransform.rect.width是在canvas的UI Scale Mode为 Constant Pixel Size的情况下设置的 * 如果是Scale With Screen Size,且设置为以宽度作为缩放,则要这要做一下换算,比如canavs宽度为960,rawImage设置为200 则需要根据 referenceResolution 做一些换算 * 不过不管是什么屏幕适配模式,这里的目的就是为了算出 RawImage 在屏幕中绝对的位置和尺寸 */ //scaler为渲染本身canvas的CanvasScaler var referenceResolution = scaler.referenceResolution; //RankBody为新建的RawImage var p = RankBody.transform.position; WX.ShowOpenData(RankBody.texture, (int)p.x, Screen.height - (int)p.y, (int)((Screen.width / referenceResolution.x) * RankBody.rectTransform.rect.width), (int)((Screen.width / referenceResolution.x) * RankBody.rectTransform.rect.height)); 5)使用WX.GetOpenDataContext().PostMessage(msg)向开放数据域发送渲染通知,因为开放数据域已经封装好了基本的渲染功能,所以直接按照先放提供的代码即可 //传入到开放数据域的数据格式,可自定义增加需要的字段 //public class OpenDataMessage //{ // public string type; // public string shareTicket; // public int score; //} //可查看WX-WASM-SDK-V2/Runtime/wechat-default/open-data/index.js中有对type字段值的枚举 openDataMessage.type = "showFriendsRank"; string msg = JsonMapper.ToJson(openDataMessage); WX.GetOpenDataContext().PostMessage(msg); 6)需要关闭好友排行的时候,使用WX.HideOpenData()关闭区域 WX.HideOpenData(); 7)向微信后台保存用户信息(可以发生在前端,可以发生在后端) OpenDataMessage msgData = new OpenDataMessage(); msgData.type = "setUserRecord"; msgData.score = "成绩"; string msg = JsonUtility.ToJson(msgData); WX.GetOpenDataContext().PostMessage(msg); 后端用法 https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/data/storage.setUserStorage.html 7、开放数据域中需要做的工作先了解每个文件夹的作用 WX-WASM-SDK-V2/Runtime/wechat-default/open-data下为开放数据域的文件 ~/data存放数据逻辑和工具类 ~/render/image 存放开放数据域需要的图片,因为开放数据域不支持外部图片url,所以要不将图片放到image文件夹中,要不在主域中将图片下载好,然后传进开放数据域中 ~/render/styles 存放开放数据域的wxss样式 ~/render/tpls 存放开放数据域的wxml模版 1)注释测试语句,这是示例应该怎样存用户数据 [图片] 2)编辑模版样式 由于小游戏没有new Function 或者 eval 的能力,所以模版的编译只能在外部完成,然后将模版的内容复制到WX-WASM-SDK-V2/Runtime/wechat-default/open-data/tpls/friendRank.js文件中,这里可以寻找前端朋友帮助 TIPS:图片一定要用双标签,text标签的值一定要放在value中,不要放在标签内,不要问为什么(土亢)因为这是一记响亮的耳光 [图片] 3)样式编辑,将写好的wxss复制到WX-WASM-SDK-V2/Runtime/wechat-default/open-data/styles/friendRank.js中 TIPS:宽高需要手动计算,排版方式默认为从左到右,一些复合的wxss无法使用,这也不要问为什么,因为这是另外一记响亮耳光(土亢) 友善建议:直接下载官方demo,https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/tree/main/Demo/Ranking,然后改,因为我之前做过小程序,所以非常自信的写了一个模版样式,于是就出现了上面的两记耳光,抽了我整整一天,最终用了官方示例改的::>_<:: 8、以弹窗的形式展示好友列表以上工作做完之后,不出意外情况,好友列表可以正常渲染了,但这里又碰见了另外一个问题,开放数据域的渲染由于跟unity的渲染有一些冲突,所以会干扰主域UI的渲染,效果如下 [图片] 这基本是没法玩的,这又壳了将近一天的时间发现,如果好友排名以弹窗的形式展示,关闭弹窗的时候使用WX.HideOpenData()关闭开放数据域即可解决这个问题 并在后期也得到了官方对该问题的验证 [图片] 最终效果呈现 [图片] 可以微信添加minigamedevop08小游戏研发助手8号咨询自己需要解决的问题,上面的验证就是他帮助我找技术人员回复的,非常感谢 [图片] 非常欢迎大家扫码体验,并提出宝贵建议,也非常感谢能读到这里,希望此文章对您有所帮助
2023-08-21 - 微信游戏申请游戏登录信息的授权怎么调用呀?
[图片] 如图所示,这个页面的授权使用什么代码调用呀? 万分感谢大佬们的回答!
2023-01-06 - 微信小游戏 隐私协议 驳回5次,搞不懂你们逻辑
说实话 ,你们 微信小游戏 隐私审核真是坑爹玩意,我修改了5次以后,老是提示 “ 驳回理由 1、你的小游戏使用了“微信朋友关系”用户信息类型,但未在“小程序主页-更多资料-服务隐私及数据提示-《xx小程序隐私保护指引》”中声明,请声明整改后再申诉。 “” 这个提示 你让我哪里改??? 客服是不是没有上过学还是没有培训过??? 我隐私协议都改了不下于10遍,改烂了,还是错误? 你这个驳回,我怎么知道哪里错了???我在申诉的截图也截了我填写的资料,就是不看 不看 不看,根本搞不懂你们的逻辑头脑! 现在审核驳回了5次,再次提交 申诉,没有按钮了??? 我该怎么办??? 一个月就赚3分钱的小游戏,看着都心累,这几年跟着你们改了多少次 这协议、那协议,。这防沉迷 那防沉迷,有用吗??? AppID(小程序ID) : wx5f488f3d63c61ce3 看到的话,就麻烦你们高贵的大手给我 申诉通过下,我实在受不了了你们的这个驳回,到底啥 哪里错了??? 你们仔细仔细看我填写的,我已经按要求填写完整完整完整了啊!! 崩溃了
2023-08-24 - 已开启“隐私授权弹窗”功能,但是审核未通
您好,我已开启“隐私授权弹窗”功能,但是审核未通过,告知理由如下: 【处理用户个人信息前未以弹窗或突出链接等主动方式提示用户阅读同意隐私协议,或未配置独立的隐私协议,或该协议和其他协议(如用户协议)合并在一起,或未以标准化名称命名。请自查整改后重新提审。】 请问还需要做什么配置才满足要求~ [图片][图片]
2023-08-29 - 你们腾讯官方的接口文档命名这么秀么?
https://developers.weixin.qq.com/doc/channels/API/category/add.html [图片] 拼音牛逼,上面几个还能接受,下面那个账号名称“zhanghaomingcheng”真的是太秀了,还有ruzhuzhizhi这个拼音都拼错了,应该是ruzhuzizhi,哈哈哈哈哈哈
2023-03-15 - 关小游戏的原生广告,有没办法让这个原生广告适配不同的机型,始终保持在底部啊?
请教和位神,有没办法让这个原生广告适配不同的机型,始终保持在底部啊? const customAd = wx.createCustomAd({ adUnitId: 'adUnit-xxxx', left: 10, top: 10, fixed: false }) customAd.show()
2023-07-30 - 非问题?一个三体迷给自己做的小游戏引流一下,谢谢!
https://gamemaker.weixin.qq.com/#/game?game_id=lbNTMwOGM4ZGQtZGFjYS00YTAwLThiMjYtZTVhNjkzYzI0ODJk 因个人是三体迷,是一个容易沉浸在自我世界的阿宅,看到无数人对三体这个宏大的故事在各种影视创作上的补全,我尽我的想象,做了一个同人作品,希望有人喜欢,哈哈 觉得不错的请点赞支持,谢谢哈!
2023-06-20 - 创建小游戏时自动跳转至小程序?
问题描述: 按照这个文档https://developers.weixin.qq.com/minigame/dev/guide/#%E5%AE%89%E8%A3%85%E5%B9%B6%E5%90%AF%E5%8A%A8%E5%BC%80%E5%8F%91%E8%80%85%E5%B7%A5%E5%85%B7在微信开发者工具上创建小游戏时,会自动跳转至小程序。 如下图所示,填入appid后,就会自动跳转至小程序? [图片] 我的问题是: 为什么会出现这个情况?这个问题应该怎么解决?
2021-06-14 - 电脑版微信打开小游戏,提示游戏不存在
[图片]
2023-06-13 - 微信小游戏制作工具游戏开发教程大合集
嗨!大家好,我是小蚂蚁。 春节假期临近,提前预祝大家兔年吉祥如意。这里我为大家准备一份学习资料,虽然是春节假期,但是我相信还有不少人是有学习计划的,希望这份学习资料能够对你学习做游戏有所帮助。 这些的教程资料已经帮助过很多人做出了自己的第一款游戏,希望它们还能够继续帮助更多想要做游戏的朋友,进入游戏开发世界的大门。 图文教程大合集 视频教程大合集1 视频教程大合集2 视频教程大合集3 另外,春节假期期间,也欢迎来玩玩小蚂蚁的小游戏,希望它们能够给你带来快乐和放松。 [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片] 欢迎关注我的微信公众号【小蚂蚁教你做游戏】,每天学点儿游戏开发知识。 [图片]
2023-01-17 - 从零开始制作一个羊了个羊游戏4:道具的实现
嗨!大家好,我是小蚂蚁。 今天是羊了个羊系列教程的最后一节,我们来学习一下游戏中的三种道具的实现。 这三种道具分别是:移出三张牌,撤回一步,随机打乱顺序。 接下来,我们就依次来看一下每种道具的具体实现。 移出三张卡牌 这个道具的作用是从当前的卡牌槽中移出前三张牌,把它们暂时放在卡牌槽的上方,移出的牌可以在后续再次加入到卡牌槽中。 使用移出道具时,有可能会出现两种情况。一种是当前卡牌槽中的卡牌数量小于等于 3 张,一种是当前卡牌槽中的卡牌数量大于 3 张。 [图片] [图片] 上方图示的就是这两种情况,第二种情况(牌数多余于3 张)需要多处理一步,将剩余牌的位置向前调整。 接着,我们直接来看一下具体的实现吧! 首先,新增的两个新的全局变量。 [图片] 移出卡牌的数量:记录的是当前需要移出几张卡牌,如果卡槽中只有两张牌,那么移出卡牌的数量就是 2,如果卡槽中超过三张牌,那么数量就是 3。 移出卡牌的位置:记录当前移出的卡牌的位置,因为最多只有三张移出卡牌,所以这个位置记录的是1,2 或者 3。 新增两个通知。 [图片] 移出卡牌位置调整:移出卡牌后,通知剩余的卡牌进行位置调整。 移出插槽卡牌:通知插槽中的卡牌进行移出处理。 接着看一下,在场景中我们增加了两个新的资源。 [图片] 一个是移出道具的按钮(这里我使用了容器来制作按钮),另一个是“移出卡牌”,这里我们单独创建了一个新的“移出卡牌”精灵,它专门负责处理移出卡牌的功能和逻辑。 还记得之前讲过的职责分离吗?我们创建了“卡牌”和“插槽卡牌”,“卡牌”负责在堆叠布局中展示和拾取,“插槽卡牌”负责处理拾取后卡牌的放置,消除,位置调整等等,它们各自只需要负责处理自己的事情,这里我们创建一个新的“移出卡牌”也是同样的道理,它只需要负责处理移出卡牌的逻辑即可。来看一下具体的实现逻辑,首先是“移出道具按钮”上的积木逻辑。 [图片] 接着来看一下“移出卡牌”上的积木逻辑。 [图片] “移出卡牌”上需要处理的逻辑只有两部分,一部分是被创建出来之后,先把自己放在卡牌槽中的对应牌的位置上,然后再使用一个动画积木让自己移动到卡牌槽上方的指定位置上。 “移出卡牌”的拾取逻辑与“卡牌”的拾取逻辑类似,创建一个新的“插槽卡牌”,然后把自己删除掉。 最后,再来看一下插槽卡牌中的新增的两个通知处理。 [图片] 预览一下,看看移出道具的效果。 [图片] [图片] [图片] 当卡牌槽中牌的数量不足三张的时候,直接将所有的牌移出放置到上方,当超过三张的时候,移出前三张,然后调整剩余牌的位置。移出的牌在需要的时候可以再次选择加入到卡牌槽中。 撤回一步 这个道具跟我们电脑上常用回退操作(Ctrl Z )有点儿像,其实就是将上一步拾取到卡槽中的牌退回到它之前在上方堆叠布局中的位置。这个撤回道具只能回退一步,不能够进行多次的回退。 这个好像没有什么理论可讲的,我们就直接来看它的具体实现吧! 首先,还是新增一些变量。 [图片] 撤回卡牌:用于判断当前创建的卡牌是否是需要撤回的卡牌; 撤回卡牌行/列号:记录上一步拾取的卡牌的行列号; 撤回卡牌层级:记录上一步拾取的卡牌的层级; 撤回卡牌类型:记录上一步拾取的卡牌的类型; 撤回卡牌插槽位置:记录上一步加入到卡槽中的牌在卡槽中的位置; 这一系列撤回变量的作用其实就是记录上一步操作的那张牌的各种信息,因为只能回退一步,所以我们只需要记录上一张牌的信息即可。有了这些信息,就能够创建出上一张牌了。 新建两个新的通知。 [图片] 撤回卡牌:用于向卡槽中的所有的牌发送通知,让上一步插入进来的牌撤回。 撤回卡牌位置调整:撤回之后,卡槽中剩余的牌需要进行位置的调整。 在场景中新增一个“撤回一步按钮”。 [图片] 来看一下“撤回一步按钮”上的积木逻辑。 [图片] 逻辑看上去很的简单,不过有个地方需要注意一下,在一张卡牌被撤回之后,需要刷新一次所有卡牌的状态,因为有可能出现这种情况,例如拾取了一张第二层的牌,这个牌被拾取后,它下方第一层的牌变成了可拾取状态,此时如果使用了撤回操作,那这张牌会回到原来的位置上,那它下方的那张牌就应该再次变成不可拾取状态,所以在撤回操作之后,我们需要重新计算所有牌的状态。 这里通过“撤回卡牌插槽位置”这个变量是否大于 0 ,来判断当前是否有需要撤回的牌。什么情况下没有要撤回的牌呢?一种是已经撤回了一次了,就不能再撤回了,另一种是拾取的牌产生消除了,此时也没有要撤回的牌了(因为已经消除掉了)。 接着,来看“插槽卡牌”上新增的两个通知处理。 [图片] 再来看一下“卡牌”上的一些积木逻辑的修改。 “卡牌”被克隆出来时的积木逻辑修改: [图片] [图片] 这里主要根据当前创建的是否是要撤回的卡牌来使用不同的逻辑,关卡初始时创建的卡牌依旧使用原来的逻辑,对于要撤回的卡牌,使用撤回变量中的数据进行设置。 “卡牌”点击时的积木逻辑修改: [图片] 红线框出的为增加的积木逻辑,即每次从上方拾取卡牌的时候,就记录这张卡牌的信息,所以这些撤回变量里记录的永远都是上一张卡牌的信息。 最后,在“插槽卡牌”的克隆逻辑中也需要做一点儿修改。 [图片] 只增加了一个积木块,用于记录要撤回的卡牌在插槽中的位置。 预览一下,看看撤回道具的效果。 [图片] [图片] 总是会撤回最后一次拾取的牌,并且在撤回之后,所有的牌的拾取状态会自动更新。 随机打乱顺序 这个道具的作用是将当前的所有卡牌的顺序随机的进行打乱,在没有可消除的牌时,进行随机打乱后或许就会出现转机。 这个功能如何实现呢?来看一下下方的这张图: [图片] 注意图中的数字代表的是牌的位置编号,而不是牌的类型,这里我们将牌的位置(行号,列号,层级)抽象成一个数字,方便理解整个随机打乱的过程。 在随机打乱之前,卡牌按照顺序排列,将所有卡牌的位置编号添加到一个列表中,将这个列表进行随机的打乱,就能够得到一个乱序的列表,然后从第一项开始,将新列表的位置依次的设置到卡牌的位置中,得到的就是下方的随机打乱后的卡牌位置,最后再将这些卡牌按照设置的位置重新进行排列。 最后的调整过程看起来应该是这样的。 [图片] 最后在重新调整后的卡牌中,第 1 张卡牌其实是原来位于位置 5 上的卡牌。 以上就是随机打乱的实现思路了,就是将所有卡牌的位置进行随机的互换,让我们到微信小游戏制作工具中实现一下吧! 增加一个新的全局变量。 [图片] 当前随机打乱层级:记录当前要进行位置调整的是哪一层的卡牌。 增加四个新的列表。 [图片] 卡牌行/列号列表:记录所有卡牌的行号和列号; 卡牌层级列表:记录所有卡牌的层级,即位于第几层; 随机乱序列表:用于生成随机打乱顺序的列表; 上方我们讲过的使用一个数字表示卡牌位置,是对位置进行了简化处理,方便理解。实际游戏中,每张卡牌的位置由行号,列号,层级三部分组成,所以这里需要三个列表来分别记录位置信息。 新增三个通知。 [图片] 记录卡牌位置:通知所有的卡牌将自己的位置信息记录到列表中; 随机设置卡牌位置:通知所有卡牌将打乱顺序后的位置依次设置到卡牌的位置信息中; 随机打乱卡牌:通知所有卡牌调整自己的位置到之前设置的位置上; 接着,在场景中,新增一个“随机打乱按钮”。 [图片] 来看一下“随机打乱按钮”上的积木逻辑。 [图片] 这里注意“随机乱序列表”的使用,我们使用了三个列表来记录卡牌的位置信息,这三个列表是不能随机打乱顺序的,因为行号列表中的第 n 项,列号列表中的第 n 项,层级列表中的第 n 项,这三个数值决定了一张卡牌的位置,这三个列表中的项必须是一一对应的。所以这里我们使用了第四个列表,即“随机乱序列表”,这个列表中存放就是卡牌的位置编号,每个位置编号只需要一个数字即可(这个跟我们前面讲过的对上了),假如当前共有 5 张卡牌,那我们就生成一个 [1,2,3,4,5] 的列表,将这个列表随机打乱顺序 [3,5,2,1,4],然后将新的位置依次的设置到卡牌中。 如何通过一个数字位置编号,获取到包含三个信息的卡牌位置呢?假如说当前卡牌的位置编号为 1 ,那么就可以通过“卡牌行号列表的第 1 项”得到行号,“卡牌列号列表的第 1 项”得到列号,“卡牌层级列表的第 1 项”得到层级。另外一点儿需要注意的是在最后调整卡牌位置的时候,我们是一层一层调整的,即先调整第一层的卡牌,然后再调整第二层的卡牌。为什么这么做呢?因为卡牌图片是有层级顺序的,要确保第二层卡牌图片的层级位于第一层卡牌之上,这样才能让第二层卡牌显示在第一层卡牌的上面。所以这里我们先从下层调整,然后再调整上面的一层,这样就能保证卡牌图片层级的正确显示了。 接着,再来看一下“卡牌”上新增的三个通知的处理。 记录卡牌位置通知的处理: [图片] 随机设置卡牌位置通知的处理: [图片] 随机打乱卡牌通知的处理: [图片] 注意这里使用了“将自己的层级移至最上层”积木,这个积木块的作用是将当前精灵的图层移动到最上方,前面讲过我们是一层一层的进行调整的,调整第一层时,第一层卡牌图片的层级位于最上层,接着调整第二层,此时,第二层卡牌图片的层级位于最上层了(第一层卡牌之上),然后以此类推,即使你有 n 层卡牌,这些卡牌图片的显示顺序也会是一层一层的正确显示的。 最后,我们来预览一下这个随机打乱道具的效果。 [图片] 至此,羊了个羊游戏系列教程就结束了。对不少人讲,学习这个系列教程有些困难。但是如果你能硬着头皮坚持下来,再回过头来看看,一定会发现自己收获了很多。 在这四节教程中,我们把羊了个羊这种三消游戏包含的所有内容基本上都讲全了,也就是说你现在已经掌握了足够的技巧和方法了,对于这样的一个消除游戏,接下来怎么做,是增加更多的层数,还是增加更多的关卡,亦或者融合进一些你自己的想法......你已经具备了足够的能力来做这些事情,所以到底要怎样做,就要看你了。 “师傅领进门,修行在个人 ”这句俗语还是很有道理的,你要做的游戏,或者要做的事不可能永远有教程,或者有人能引领,大部分时候,我们终归还是要一个人摸索着前行的。 最后羊了个羊游戏模版已经上线,可以识别下方的小程序码体验。 [图片] --- 欢迎关注我的微信公众号【小蚂蚁教你做游戏】,每天学点儿游戏开发知识。 [图片] 也欢迎加小蚂蚁微信(xiaomayi6669),交个朋友。 [图片] 这里是小蚂蚁的小游戏系列,闲暇之余希望能给你带来片刻的放松和愉悦。无需下载安装,微信扫码可以直接玩啦! [图片] [图片] [图片] [图片] [图片] [图片] [图片]
2022-10-06 - 快速上手微信云托管
微信云托管是为开发者提供的后端服务云原生解决方案,支持托管任意语言及框架的容器化应用,创建环境即可享受能自动扩缩容的容器资源,用户可面向代码/镜像等方式使用,免服务器、免运维。
2022-07-29