1. 程式人生 > >cocos2dx-3.x學習筆記二:隨機數的生成及注意問題

cocos2dx-3.x學習筆記二:隨機數的生成及注意問題

cocos2dx-3.x提供了一個用於生成【0,1)之間浮點數的巨集定義CCRANDOM_0_1

1. 巨集定義說明

首先檢視原始碼,定位分析:

1 2 3 4 /** @def CCRANDOM_0_1 returns a random float between 0 and 1 */ #define CCRANDOM_0_1() cocos2d::rand_0_1()

cocos2d::rand_0_1()函式的原型為:

1 2 3 4 5 6 7 8 9 10 11 12 13 /** * Returns a random float between 0 and 1.
* It can be seeded using std::srand(seed); */ inlinefloatrand_0_1() { // FIXME: using the new c++11 random engine generator // without a proper way to set a seed is not useful. // Resorting to the old random method since it can // be seeded using std::srand() returnstd::rand() / (float)RAND_MAX;
//    return cocos2d::random(0.f, 1.f); };

從上面的原始碼可以看出,CCRANDOM_0_1()其實就是呼叫標準庫函式 rand(),隨機生成0 - 1,左開右閉區間內的浮點數

2. rand函式

標準庫函式生成隨機數,採用的是rand函式,生成一個【0, RAND_MAX】 之間的整數,常用的例項如:

1 2 3 4 5 6 7 8 9 #include <time.h> #include <stdlib.h> intmain() { srand((unsignedint)time
(0)); // 設定隨機數種子 printf("%d\n",rand()); return0; }

3. CCRANDOM_0_1使用

在具體的使用過程中,需要注意兩點

  1.   初始化隨機數種子

  2.   注意閉合區間,尤其是生成隨機整數時,更需要確保閉合區間,圓括號的使用----> 檢視下例中第十行

一個使用例子,用於隨機生成0,1兩個整數:(int)(CCRANDOM_0_1() * 2)

    ​

1 2 3 4 5 6 7 8 9 10 11 12 13 #include "cocos2d.h" inttest() { structtimeval now; gettimeofday(&now, NULL);

相關推薦

cocos2dx-3.x學習筆記隨機數生成注意問題

cocos2dx-3.x提供了一個用於生成【0,1)之間浮點數的巨集定義CCRANDOM_0_1 1. 巨集定義說明 首先檢視原始碼,定位分析: 1 2 3 4 /** @def CCRANDOM_0_1 returns a random floa

《組合語言(第3版)(王爽 著)》學習筆記基礎知識(2)

1.7 CPU 對儲存器的讀寫 以上講到,儲存器被劃分成多個儲存單元,儲存單元從零開始編號。這些編號可以看作儲存單元在儲存器中的地址。就想一條街,每個房子都有門牌號碼。 CPU 要從記憶體中讀資料,

Cocos2d-x 3.x學習筆記猩先生帶你打飛機(四)遊戲場景:背景與我機的建立、敵機的建立、物理世界構建

一、背景與我機的建立 現在我們要建立新的一個場景了。選擇開始遊戲即從選單場景跳到遊戲場景。現在先完善HelloWorldScene的程式碼 找到我們開始遊戲的回撥方法,新增程式碼: //開始遊戲 void HelloWorld::menuStartCa

‎Cocos2d-x 3.x 學習筆記(三)Scheduler Timer 排程與定時

‎1. 概述 Cocos2d-x 的 Scheduler 離不開 Timer。Timer 類是定時器,用來規定一個回撥函式應該在何時被觸發。Timer 封裝了已執行時間、重複次數、已執行次數、延遲秒數、時間間隔、要觸發的回撥函式等等,都是與一個回撥函式觸發相關的成員。 Scheduler 是排程器

SpringMVC學習筆記常用註解

title c學習 請求 pin 學習 lin att 詳解 stp 轉載請註明原文地址:http://www.cnblogs.com/ygj0930/p/6831976.html 一、用於定義類的註解:@Controller @Controller 用於標記在一個類上,

framework7學習筆記基礎知識

部分 cnblogs query 基礎 logs code 自己 $$ pan 一:DOM7 framework7有自己的 DOM7 - 一個集成了大部分常用DOM操作的高性能庫。它的用法和jQuery幾乎是一樣的,包括大部分常用的方法和jquery風格的鏈式調用。 在開發

Spring4學習筆記Bean相關

因此 code per cdata 通過 反射機制 特殊符號 cat too 一:Bean的配置形式 基於XML配置:在src目錄下創建 applicationContext.xml 文件,在其中進行配置。 基於註解配置:在創建bean類時,通過註解來

小程序學習筆記頁面文件詳解之 .json文件

fresh 小程序 整體 屬性 spa hit rbac style mdi 頁面配置文件—— pageName.json 每一個小程序頁面可以使用.json文件來對本頁面的窗口表現進行配置,頁面中配置項會覆蓋 app.json 的 window 中相同的配置

python 3.x 學習筆記9 (面向對象)

表現 技術發展 計算 多種實現 類方法 run spa col 對數 1.面向對象 面向對象是一種對現實世界理解和抽象的方法,是計算機編程技術發展到一定階段後的產物。 2.類(class): 一個類即是對一類擁有相同屬性的對象的抽象、藍圖、原型。在類中定義了這些

python 3.x 學習筆記13 (socket_ssh and socket_文件傳輸)

粘包問題 問題 取出 nec imp 傳輸文件 ket color md5 ssh服務端 import socket,os server = socket.socket() server.bind((‘localhost‘,6666)) server.listen()

python 3.x 學習筆記18 (mysql 未完 )

offset targe name屬性 表結構 不用 創建用戶 ant 書籍 主鍵 1.數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫 2.RDBMS即關系數據庫管理系統(Relational Database Management System)的特

Docker學習筆記Docker的安裝

ros -h bionic docker customer tex 鏈接 space 版本 安裝環境:操作系統:Ubuntu 18.04 LTS,code name:bionic (#lsb_release -a)內核版本:4.15.0-29-generic(#uname

基於.NET的CAD次開發學習筆記AutoCAD .NET中的物件

1、CAD物件 一個CAD檔案(DWG檔案)即對應一個數據庫,資料庫中的所有組成部分,看的見(包括點、多段線、文字、圓等)和看不見(圖層、線型、顏色等)的都是物件,資料庫本身也是一個物件。 直線、圓弧、文字和標註等圖形物件都是物件。 線型與標註樣式等樣式設定都是物件。 圖層

分散式學習筆記從分散式一致性談到CAP理論、BASE理論

問題的提出 在電腦科學領域,分散式一致性是一個相當重要且被廣泛探索與論證問題,首先來看三種業務場景。 1、火車站售票 假如說我們的終端使用者是一位經常坐火車的旅行家,通常他是去車站的售票處購買車 票,然後拿著車票去檢票口,再坐上火車,開始一段美好的旅行----一切似乎都是那麼和諧。想象一

轉載InstallShield學習筆記元件配置

InstallShield學習筆記二:元件配置 這裡主要講的記錄的是配置檔案的細節。 1.Features配置 在 Installshield 中,可以在 Features 新增需要安裝元件大類,這裡需要注意的是: 在InstallSrcipt MSI ,預設DefaultFeatu

JavaScript 學習筆記基本知識

文章目錄 預備知識 JavaScript web 開發人員必須學習的 3 門語言中的一門: 如何編寫JavaScript? 如何執行JavaScript 使用 JavaScript的兩種方式 1. 指令碼是直

csdn學習筆記連結串列原型、do原型分析

設計連結串列,並設計其迭代函式 生成連結串列、列印連結串列 arr = {10, 20, 30, 100, 101, 88, 50}; head = nil; local i = 1 while true do if arr[i] then head = {va

python學習筆記列表

列表通過索引讀取資料: #索引讀取資料 a = [1,2,3] a[-1] 執行結果:3 列表支援巢狀: b = [[1,2,3],[4,5,6]] print(b) 執行結果:[[1, 2, 3], [4, 5, 6]] 列表可以修改: b = [[1,2,3],[4,5,

Python 3.x 學習筆記

基礎語法 使用縮排來組織程式碼塊 大小寫敏感 基本資料型別:空值None、布林值、整數、浮點數、字串 程式執行過程中,變數儲存在記憶體中 變數本身型別不固定 - 動態語言 常量通常用全大寫表示 1箇中文字元經過UTF-8編碼後通常會佔用3個

mapreduce學習筆記去重實驗

bound pac except 計算 throws 問題 多少 tasks tostring 實驗原理 “數據去重”主要是為了掌握和利用並行化思想來對數據進行有意義的篩選。統計大數據集上的數據種類個數、從網站日誌中計算訪問地等這些看似龐雜的任務都