以下内容只是自己对这次项目中某个功能的总结,由于自己水平有限,用的也是比较简单的算法,如果更好的思路,请私信我,十分感谢。
在我们游戏中,经常会出现如下的功能,怪物死亡后,会爆出很多金币,而且种类各不相同。但在开发中是如何实现呢?我提供两种思路。
方法一:循环法
1.假设有金、银、铜三种金币,我们要有一个数组,存放这三种金币的值,例如金代表50,银代表30,铜代表10。
2.通常我们敌人都会有一个“奖励”的属性,例如敌人大飞龙死亡后,会产生100的“奖励”。
3.设置一个随机的种子数(用于随机生成哪种金币的下标),然后用循环计算敌人奖励数-三种金币的值,如果小于0的话,随机种子及数就减1,
这一步的目的是为了得到我们最多只能用哪几种类型的金币。
4.然后用敌人奖励数-金币值[随机种子数],如果不小于等于0,那么我们就生成一个该随机种子数对应的金币,否则就生成最小值的金币,
该方法生成的金币组合永远都是随机的,比较多变。
方法二:组合法
1.同上。
2.同上。
3.建立一个大数组,将每个敌人奖励所组合的金币类型预先写好(可以同一种敌人多写几种配置)
4.生成金币时,我们就读相对应的组合规则,该方法生成的金币组合比较单一,没有随机性,要求不高的话用这种也是可以的。