递归调用的实现

更新时间2021/4/20262 浏览游戏开发攻略
最近写代码无意中发现到一个递归调用的实现方案,成功突破蓝耗子的限制(狂喜),实现一些算法也更为容易了(不需要自己写栈)
使用零件-调用方法实现递归
TapTap
用图中例子的效果
TapTap
和预期效果一致,递归成功
TapTap
调用堆,可以看到递归了两层
最后希望程序员大大手下留情,不要一棍子打死所有递归
(会写递归的真没那么容易爆栈除非是故意的)
另外就是有意要闪退或者卡死的效果,也有的是其他办法... 禁了真没必要
测试了一下用递归撑爆内存,17~18层的递归(调用自身两次)足以占满内存(总调用次数大约2^20)且没有立即释放,只有退出地图再次进入,内存才释放
游戏底层的内存是根据调用堆栈分配的,即一个方法从不同地方调用不共用内存,首次调用即分配内存,但再次调用此函数不会重新分配,类似静态变量(也可以理解为所有变量都是静态而通过不同的堆栈调用到的同一个方法当做不同方法),所以递归在这是真的不好用,除非加入动态和静态变量的区别,尽量不要用了
6
2