iOS - Diceroll 增加一个对象的出现频率

标签 ios xcode cocos2d-iphone

在我的应用程序中,当敌人被杀死时,弹药就会掉落。此代码有 4 种不同类型的弹药 int diceRoll = arc4random() % 3;//0 到 3 现在,每种弹药类型的生成频率为 25%。例如,是否有可能使 2 型弹药变得更加频繁?例如高达 40%,因此其他弹药类型将为 20%

最佳答案

你尝试过吗:

int spaceSet = pow(10, 3); //range of 1000, the bigger the more noticible it gets 
int diceRoll = arc4random() % (spaceSet - 1);
if(diceRoll < (2 * (spaceSet / 10)))
    diceRoll = 0;
else if(diceRoll < (4 * (spaceSet / 10)))
    diceRoll = 1;
else if(diceRoll < (7 * (spaceSet / 10)))
    diceRoll = 2;
else
    diceRoll = 3;

增加随机和除法的集合似乎是个好主意。

关于iOS - Diceroll 增加一个对象的出现频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15185073/

相关文章:

iOS 10 GameCenter 通过消息发送邀请

ios - 需要用于 Appstore 连接和 Xcode 开发人员帐户连接的 URL

ios - 在 Xcode 中设置最低 iOS 版本

ios - UICollectionViewCell 不是圆角

iphone - 更轻松地分配以增量方式创建的新变量

objective-c - ccTouchBegin 接触点未被正确读取

javascript - 以实际大小的 25% 呈现 div 的内容

ios - swift tableview 重新加载数据问题 - 自定义单元格中缺少元素

objective-c - 命令/Developer/usr/bin/clang 失败,退出代码为 1

cocoa-touch - 为Cocos2D伸出援手。如何从头开始?