cocos2d-x随机数的问题

浅显易懂地看LLC变换器(三) 第3期 谐振与增益的定性关系 由简单的谐振电路说起 我们将以电感和电容的基本电路的特性逐渐了解谐振电路的特性 与电阻不同,电感和电容都不是纯阻性线性器件,电感的感抗XL和电容的容抗Xc都与频率有关,当加在电感和电容上的频率发生变化时,它们的感抗XL和容抗Xc会发生变化。 1) 如下图RL电路,当输入源Vin的频率增加时,电感的感抗增大,输出电压减小,增益Gain=Vo/Vin随频率增加而减小。 2) 如下图RC电路,相反,当输入源Vin的频率增加时... 阅读详情

大家都知道游戏里经常会涉及到随机数的问题,

cocos2d-x自带的随机函数CCRANDOM_0_1()可以获得0~1之间的浮点数

然而使用这个函数的时候我们会发现每次程序重新运行函数获得的随机数序列都是一样的

这是关于随机数和随机数种子的问题,计算机并不能真正实现随机数,他只是一个产生一个序列的函数,

只要随机数种子相同,每次产生的随机数都相同

因为我们没有设置随机数种子,所以每次都使用系统默认的随机数种子,所以每次随机出来的都是一样的

我们需要自己设置随机数种子

一般来说会以系统时间作为种子,因为时间每次都不一样,但是在cocos2d-x里获取系统时间是一个问题

不同的平台需要不同的方法获得系统时间,希望那天cocos2d-x能帮我们完成这个任务(或许现在就有,只是我没发现,知道的大神求指导)

这样就很麻烦,但是我们可以为每个要发布的平台写一个获取系统时间的办法

这里我给大家介绍一个好的办法

使用cocos2d::Director的getSecondsPerFrame()和getTotalFrames()函数来获得每次不一样的种子

因为每次这两个函数产生的值都不一样(虽然有可能一样,但这个概率太小太小了)

所以我们将它们相乘,就可以获得一个相当于系统时间的一个变量

但是我们发现这个相乘的结果有点小,我们可以给他乘以一个比较大的系数比如(100007),因为在不同的平台unsigned long的最大值不同,所以也不能设置太大

android因为太大以后会超过4294967296,然后一直保持这个随机数种子

这样就能每次产生不一样的随机数了

代码如下:

const unsigned long RAND_SCALE = 100007;

unsigned long getRandSeed()
{
    auto director = cocos2d::Director::getInstance();
    auto ps = director->getSecondsPerFrame();
    auto tf = director->getTotalFrames();
    auto ret = (unsigned long)(ps*tf*RAND_SCALE);
    return ret;
}


Coze智能体开发:开始使用扣子 扣子全新升级!它不仅能帮你办公、做视频、写代码,更具备自主任务执行、探索进化等能力,真正从“陪你聊”走向“帮你干活”。 阅读详情

相关推荐

C# 调用halcon中visualize_object_model_3d显示点云

3.1 判断线程是否为空,如果为空,则新创建,如果不为空,则中断线程,清空窗口后再次执行创建操作3.2 创建:调用show()方法实例化显示类的对象,传入显示参数,将线程testvisual 绑定 在 类对象的action方法上(此处action方法内部,只调用了visualize_object_model_3d算子)3.3 启动线程。

weixin_42362219的博客 1403

Cocos2dx 3.0 过渡篇(五) 随机数的获取

随机数种子就相当于 随机数的重置开关,你如果想获得随机数,肯定要先把开关打开吧,初始化了随机数种子,也就是相当于打开开关,这时候“种子”就开始起来了,你每隔一段时间获取随机数,它都会反馈给你一个不同的位置数据,而如果你每获取数据就要初始化随机数种子(也就是重启开关),这就相当于“种子”又从起点重新出发,这不是要累死“种子”的节奏么?

天涯海阁 1万+

SoC低功耗设计实战:28nm工艺下四核A7的Hierarchical Flow全流程解析

本文深入解析了在TSMC 28nm工艺上,采用Hierarchical Flow(层次化流程)实现四核Cortex-A7 SoC低功耗设计的全流程。文章从项目背景切入,详细探讨了基于UPF的电源规划、时钟树综合、接口时序收敛以及物理验证等关键环节,分享了使用Cadence Innovus等工具进行低功耗物理实现的实战经验与挑战。

weixin_29231263的博客 325

cocos2dx 随机数

cc_timeval psv; CCTime::gettimeofdayCocos2d( &psv, NULL ); // 计算时间种子 unsigned int tsrans = psv.tv_sec * 1000 + psv.tv_usec / 1000; // 初始化随机数 srand( tsrans ); 123

847

手把手教你用SlowFast训练自定义手势识别数据集(附FFmpeg抽帧技巧)

本文提供了一份基于SlowFast架构训练自定义手势识别数据集的完整实战指南。文章重点剖析了数据准备的核心挑战,详细讲解了利用FFmpeg进行高、低帧率抽帧的技巧,并介绍了构建半自动标注流水线、生成符合SlowFast要求的AVA格式数据集文件的具体方法。最后,针对手势识别场景,给出了关键的模型训练配置与调优建议,帮助开发者高效完成从数据到模型的全流程。

s1t2u3的博客 910

【异常】OpenClaw 上下文溢出问题(100% context used 309.9k/200k`)排查与解决

摘要:OpenClaw 运行出现"100% context used 309.9k/200k"报错,表示上下文窗口超出200k Token限制。解决方法包括:1) 重启服务或新建会话清空缓存;2) 修改配置文件提升context_window值;3) 长期优化如限制历史对话轮数、分批处理长文本。该问题通常由输入过长或多轮对话累积导致,需控制单次输入量在阈值内。

奶爸的编程之路,也就一周冷个三天 3239

【Cocos2d-x】之随机数的产生

此篇文章主要将讲随机数产生的方法,以及各种方法的优劣 //第一种 //随机效果一般,每次进入游戏的时候,值都是一样的 for (int i = 0; i < 5; i++) { m_randData = CCRANDOM_0_1() * 200; log("1st------------->%f", m_randData); } //第二种 //随机效果不好,虽

路飞小迷弟的博客 839

2021.02.23丨Virsorter2安装使用及答疑

最近项目比较多,又在学英语,写文章的时间少了很多。最近接到一个病毒组装的项目。用之前组装工具(ABYSS、SPAdes)都没有能够组装较为完整的scafford,今天介绍一款专门用于组装病毒的工具——Virsorter。 Virsorter最早版本发布于2015年,目前已经有了第二个版本。主要用于病毒的组装的注释。详细情况可以查看文章:https://peerj.com/articles/985/ 安装流程 安装文档: https://github.com/jiarong/VirSorter2/b

4836

在cocos2dx 3.0中如何产生随机数

最近一直在写这个地鼠的项目,现在设计让地鼠随机从洞里面钻出来。一共有5个种类的地鼠 洞有9个,不想把程序写死所以就改成随机的,这样好玩一些。然后在网上找了一下怎么在cocos2dx中生成随机数结果还真找到了一些很不错的方法 首先第一步 认识一下cocos2dx一个宏   1、简单的随机数用法:CCRANDOM_0_1 示例如下:  int random = CCRANDOM_0_1();

王春雨的博客 780

DSP的CLA调试技巧

本文介绍了基于TMS320F28377D的CLA(Control Law Accelerator)开发实战教程,涵盖基础配置、编程、调试与优化全流程。主要内容包括:CLA核心特性及其作为实时控制协处理器的优势;开发环境搭建与工程配置要点;CLA任务调度、数据交换及编程约束;调试技巧如断点设置和性能分析方法;进阶应用案例(批量除法运算)及优化策略;以及推荐的学习资源和硬件平台。教程强调数据一致性和任务同步问题,为快速上手CLA开发提供实用指导。

1047

斑马算法优化变分模态分解ZOA-VMD数字信号去噪(优化K值 alpha值)【含Matlab源码 4887期】

斑马算法优化变分模态分解ZOA-VMD数字信号去噪(优化K值 alpha值) 完整的代码,包运行;运行操作视频见优快云资源!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 811

cocos2d-x关于获取随机数的问题

之前在做一个游戏的时候需要获取随机数 1 rand()%(end-start+1)+start; 参数end和start是为了设置获取随机数范围的,要想获取接近真实的随机数需要设置一个种子,比较常用的方法是以当前时间为种子,在cocos2d-x中提供了获取时间的方法,而且获取的时间更精确 1 cc_timeval psv; 2 CCTime::gettim...

dlgms057649的博客 158

Google Earth Engine(GEE)——使用归一化燃烧指数 (NBR) 绘制地表烧伤严重程度图

归一化燃烧指数(Normalized Burn Ratio, NBR)是一种遥感指标,用于评估野火或烧伤地面后的植被恢复情况。NBR能增强较大范围的火灾区域,如大于200公顷。它是通过比较远红外波段 (SWIR) 和近红外波段 (NIR) 的反射率来计算的。SWIR波段测量烧伤地面的反射率,NIR波段测量没有受到烧伤影响的植被的反射率。NBR的计算公式为:NBR =(NIR-SWIR)/(NIR + SWIR)。其中,NIR为近红外波段,SWIR为短波红外波段。

此星光明博客 3465

关于随机数 遇到的一些问题和解决办法

我在用Cocos2d-x的引擎开发游戏。(当然我是一个菜鸟  刚大三) 问题一:虽然我运用了随机数,随机出现1~5之间的一个数,但是我发现,我无论怎么调试我的程序,它还是和第一次随机出现的数字一样,也就是不具有随机性。   在网上一插  才发现原来计算机是伪随机数。这些百度 第一个 就有介绍,我就不赘述了  直接上解决办法  :  随机数种子   //初始化随机种子     struc...

u013823233的专栏 814

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

[Cocos2d-x]随机数

Cocos2d-x为我们提供了生成随机数的宏:CCRANDOM_0_1() 具体定义如下: /** @def CCRANDOM_0_1 returns a random float between 0 and 1 */ #define CCRANDOM_0_1() ((float)rand()/RAND_MAX) 但是发现它并不能满足我们的需求,一般情况下,我们都会需要...

weixin_34026276的博客 116

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

cocos2d-x 欢乐捕鱼游戏总结

这几天一直都在做一个捕鱼游戏Demo,大概花掉了我快一个礼拜的时间。游戏主体是使用的cocos2d-x高级开发教程里面提供的小部分框架基本功能。然后自己加入所有的UI元素和玩法。变成了一个体验不错的捕鱼游戏。现把这几天遇到的所有情况总结如下:   1.捕捉到鱼时发现,鱼的移动动作没有移除,但是实际却进行了鱼对象的移除操作:     解决:首先考虑是不是自己没有移除,存储鱼的数组会不会...

dezhendiao5625的博客 449

随机数的获取

本来上午是要转载一篇看起来还不错的博客,被cocos2dx官方微博推荐过。谁知道早上打开链接时那篇博客已经转为私密了。早知道昨晚就应该复制一下内容,今天厚脸皮的来篇原创岂不妙哉。哈哈。 1、简单的随机数用法:CCRANDOM_0_1 示例如下: int HelloWorld::getRand(int start,int end) { float i = CCRANDOM_0_1()*(e

流彩飞霞的专栏 715

Cocos2d-x学习相关链接

本文主要记录一些我在学习Cocos2d-x游戏开发过程中找到的一些有用的链接 Cocos2d-x中设置颜色 解决中文乱码问题

chenf1999的博客 2311

【cocos2d-x制作别踩白块儿】第九期:游戏计时功能(附源码)

游戏没有计时,不是坑爹吗? 这一期,我们将来添加游戏计时gong

三十画生 一个北漂的人 5264

Cocos2d-x常见问题汇总 第二期

1. Q:如何在安卓上给应用程序设置透明背景? (1) NativeActivity,以Cocos2d-x 3.0 rc0为例 链接:http://www.cocoachina.com/bbs/read.php?tid=196780 (2) JavaActivity,以Cocos2d-x 3.2 release为例 链接:http://www.cocoachina.com/

aa294194253的专栏 1399

cocos2d-x 疑难奇葩错误

1. Invalid Type for cocos2d::Vector! (..\Classes\GameScene.cpp) 72行 cocos2d::Vector 定义在头文件里XX不能用前向声明,即class XX; ,只能在头文件里包含 #include "XX.h",否则会出此错

qiou2719的专栏 1877

Cocos2dx 3.0 提高篇(五) 随机数的获取(转)

转发请务必注明出处:http://blog.youkuaiyun.com/start530/article/details/18713217 本来上午是要转载一篇看起来还不错的博客,被cocos2dx官方微博推荐过。谁知道早上打开链接时那篇博客已经转为私密了。早知道昨晚就应该复制一下内容,今天厚脸皮的来篇原创岂不妙哉。哈哈。 1、简单的随机数用法:CCRANDOM_0_1 示例

c200liuhao的专栏 521

cocos2d-x 血泪史(1.5) 先从helloworld 切换到menu 吧

ok 我来更新正剧了,卧槽我记得之前貌似写过1.5 后来因为机器莫名蓝屏导致坑爹的未保存然后就伤心的专注写代码不更新博客了。。 那个上回说到哪了?哦对淡入淡出的切换到menu 界面,哦对貌似上次还写了不少东西卧槽。。 本篇的主要内容有: 1.  配置文件读取 2.  随机函数使用 3.  场景切换动画 4.  精灵列表加载 5.  使用贴图缓存 5.  菜单项...

aaaccc_2014的博客 142
上一篇: cocos2d-x 3.0 常见问题及解决
下一篇: Mac Apache Django WSGI 部署
MakingMaker
博客等级 码龄15年 6粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值