感谢小游戏可视化体验官群中的一位叫做“@天羽地王”的朋友提供的思路。本文内容主要包括如何在函数中使用局部变量并且通过局部变量来返回函数的结果值。
如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。
在微信小游戏制作工具中是没有私有函数这个概念的,也就是说所有的函数都是公共的,大家都可以使用,而且函数也没有返回值的概念,想拿到函数运行的结果只能通过设置一个全局变量,将结果存储在全局变量中,然后通过这个全局变量来使用。这种方法有很多的弊端,尤其是在有大量的克隆体存在时,每个克隆体都使用同一个函数,都去设置同一个全局变量,就会造成意想不到的结果。
那么能不能有一个方法,可以在函数中使用局部变量,而且还能使用局部变量去存储函数的返回值呢?办法还真有,只不过弯弯绕了一点儿。
如图我在基础文字上创建了 3 个局部变量,现在我想要做一个“求和”的函数,作用就是输入两个值,然后返回这两个值的和。
新建一个求和函数,设置 3 个参数,数值 1,数值 2 以及求和结果。我们希望将“数值 1”和“数值 2”相加的结果保存在“求和结果”中,将“求和结果”当作函数的返回值。
接着,在基础文字上增加如下的逻辑,先调用求和函数,然后显示出“求和结果”的值。
运行一下,我们来看。
基础文字上的局部变量“求和结果”竟然是 0,可见,虽然我们在函数中将相加的结果值设置到了“求和结果”变量中,但是函数执行完毕后,“求和结果”变量中并没有保存这个结果值,这种方法行不通。
事实证明使用普通的局部变量存储函数的返回值是不可行的,接下来我们试着使用“列表”这种局部变量试一试。
我们创建一个局部变量“返回值列表”用于存储函数的返回值。
接着修改一下函数的实现。
最后,修改一下“基础文字”上的逻辑,函数的参数传入“返回值列表”,然后从“返回值列表”中获取函数计算的结果。
再次预览调试一下。
这次成功了,通过使用“列表”这种局部变量可以在函数中存储值,并且在函数执行结束后,这些值依旧会保留。
那么,如果函数想要有多个返回值如何做呢?假设我们希望这个函数有四个返回值,分别为加,减,乘,除四个结果值。
继续往列表中插入数值即可,约定好列表的第一项是第一个返回值,第二项是第二个返回值……使用时想获取到哪个返回值直接获取列表的哪一项即可。
既然局部变量“列表”可以用于存储函数的返回值,那么“表格”和“对象”变量是不是也可以呢?是的。
我们可以通过设置对象的属性来让多个返回值更容易区分和辨认。
调试运行的结果如下:
使用“表格”也是一样的道理这里就不多赘述了。
虽然工具没有提供私有函数以及返回值的概念,但是使用这种“曲线救国”的方式基本可以满足在函数中使用局部变量,并且通过局部变量返回函数的结果值的需求了,希望这个方法对你有帮助。
如果你对游戏开发感兴趣,欢迎关注我,如果你有对游戏开发感兴趣的朋友,也欢迎把这个系列文章推荐给他。
欢迎支持一下我的微信小游戏作品“精致1010”,感谢~
精致1010,,,
一个精致的小游戏~
小程序
有任何的想法或者疑问,欢迎添加我的微信,我会尽可能的为你提供帮助。