嗨!大家好,我是小蚂蚁。
在微信小游戏制作工具中是没有私有函数这个概念的,也就是说所有的函数都是公共的,大家都可以使用,而且函数也没有返回值的概念,想拿到函数运行的结果只能通过设置一个全局变量,将结果存储在全局变量中,然后通过这个全局变量来使用。这种方法有很多的弊端,尤其是在有大量的克隆体存在时,每个克隆体都使用同一个函数,都去设置同一个全局变量,就会造成意想不到的结果。
那么能不能有一个方法,可以在函数中使用局部变量,而且还能使用局部变量去存储函数的返回值呢?办法还真有,只不过弯弯绕了一点儿。
如图我在基础文字上创建了 3 个局部变量,现在我想要做一个“求和”的函数,作用就是输入两个值,然后返回这两个值的和。
新建一个求和函数,设置 3 个参数,数值 1,数值 2 以及求和结果。我们希望将“数值 1”和“数值 2”相加的结果保存在“求和结果”中,将“求和结果”当作函数的返回值。
接着,在基础文字上增加如下的逻辑,先调用求和函数,然后显示出“求和结果”的值。
运行一下,我们来看。
基础文字上的局部变量“求和结果”竟然是 0,可见,虽然我们在函数中将相加的结果值设置到了“求和结果”变量中,但是函数执行完毕后,“求和结果”变量中并没有保存这个结果值,这种方法行不通。
事实证明使用普通的局部变量存储函数的返回值是不可行的,接下来我们试着使用“列表”这种局部变量试一试。
我们创建一个局部变量“返回值列表”用于存储函数的返回值。
接着修改一下函数的实现。
最后,修改一下“基础文字”上的逻辑,函数的参数传入“返回值列表”,然后从“返回值列表”中获取函数计算的结果。
再次预览调试一下。
这次成功了,通过使用“列表”这种局部变量可以在函数中存储值,并且在函数执行结束后,这些值依旧会保留。
那么,如果函数想要有多个返回值如何做呢?假设我们希望这个函数有四个返回值,分别为加,减,乘,除四个结果值。
继续往列表中插入数值即可,约定好列表的第一项是第一个返回值,第二项是第二个返回值……使用时想获取到哪个返回值直接获取列表的哪一项即可。
既然局部变量“列表”可以用于存储函数的返回值,那么“表格”和“对象”变量是不是也可以呢?是的。
我们可以通过设置对象的属性来让多个返回值更容易区分和辨认。
调试运行的结果如下:
使用“表格”也是一样的道理这里就不多赘述了。
虽然工具没有提供私有函数以及返回值的概念,但是使用这种“曲线救国”的方式基本可以满足在函数中使用局部变量,并且通过局部变量返回函数的结果值的需求了,希望这个方法对你有帮助。
我是会做游戏也会教你做游戏的小蚂蚁,想学习游戏开发的话,关注我的公众号就对啦!
没有系统性的学习课程和路线?自己学习没氛围学不下去?遇到问题无人帮助即时解答?缺少经验不知该如何前行?......欢迎加入小蚂蚁的游戏开发年度课程,不只是一门课,而是围绕着学习游戏开发有关的一整套服务。帮助你用一年的时间学会做游戏,做出自己的游戏,让游戏为你带来睡后收入。欢迎来跟很多同学一起学习做游戏,一起探索游戏的更多可能。【点击这里】可了解课程服务详情,【点击这里】可了解小蚂蚁能为你提供的其它课程和服务。
学员在学会做游戏之后,如果想要继续学习推广运营,我也准备了特殊的优惠,可以半价加入【小游戏推广践行群】,继续学习,打造自己的系统全面的游戏商业能力。
这里是我制作的部分小游戏《经典消除游戏大全》《彩虹星球大冒险》《经典俄罗斯方块》《疯狂泡泡龙》大家可自行点击搜索体验。
长按识别关注
交个朋友!