原创 圓與圓

判斷圓與圓之間圓心的距離 大於半徑之和:不相交 等於半徑之和:相切 小於半徑之和:相交

原创 GOF23式——Factory

意圖: 定義了一個抽象類,該類提供接口用以創建對象,並讓其子類決定實例化哪一個類。Factory模式延遲實例化其所要創建的類。   動機: 在遊戲中,我們的主角可能有多種形態,如水上形態,陸上形態和空中形態。在進入場景時,主角可能在水中,

原创 AABB(axis-aligned bounding box)

1. AABB包圍盒 在遊戲中,爲了簡化物體之間的碰撞檢測運算,通常會對物體創建一個規則的幾何外形將其包圍。 其中,AABB(axis-aligned bounding box)包圍盒被稱爲軸對其包圍盒。   二維場景中的AABB包圍盒具

原创 Box2D射線和AABB碰撞檢測

box2d使用了一種叫做slab的碰撞檢測算法。所謂slab是指兩個平行平面之間的空間,由此我們可以把3D空間中的AABB盒子看做是由AABB的3組平行面形成的3個方向的slab的交集。根據這個定義,我們可以得到以下兩個結論: 1.如果一

原创 結構中的位字段

與C語言一樣,C++也允許指定佔用特定位數的結構成員,這使得創建與某個硬件設備上的寄存器對應的數據結構非常方便。字段的類型應爲整形或枚舉,接下來是冒號,冒號後面是一個數字,它指定了使用的位數。可以使用沒有名稱的字段來提供間距。每個成員都被

原创 在Unity3D中使用全局變量

在Unity3D中使用全局變量要注意以下幾點 1.定義一個Global類,將靜態變量寫在裏面 2.Global中不引用MonoBehaviour對象,除非這個對象被執行過DontDestroyOnLoad否則在切換場景時會變成null

原创 射線與長方體

1 Ray-AABB交叉檢測算法 1.求射線與長方體6個面的距離,確定距離最小的三個面 計算射線在這三個面上的交點。從距離最小的交點開始判定是否在AABB盒裏 2 COCOS3.3 Ray-AABB實現 Ray-AABB碰撞檢測 進行

原创 共同體union

共同體是一種數據格式,它能夠存儲不同的數據類型,但只能同時存儲其中的一種類型。也就是說,結構可以同時存儲int,long和double。共同體只能存儲int,long或double。共同體的句法與結構相似,但含義不同。 union one

原创 代碼編譯

1.編譯兩個源代碼文件 在UNIX系統中編譯由多個文件組成的C++程序 2.頭文件管理 在同一個文件中只能將同一個頭文件包含一次。我們有可能在不知情的情況下將頭文件包含多次。有一種標準的C/C++技術可以避免多次包含同一個頭文件。它是基

原创 OBB碰撞檢測算法

1 OBB包圍盒 OBB(Oriented Bounding Box)包圍盒也被稱作有向包圍盒或定向包圍盒,它會隨着物體的移動、縮放、旋轉。簡單來說,它就是一個能夠旋轉的AABB包圍盒。在Cocos2d-x中使用過物理引擎的開發者一定見過

原创 射線與球

1射線與球是否相交 1.計算圓心到直線的投影點,判斷是否在射線上。不在射線上則不相交 2.計算圓心到直線的距離,大於半徑不相交,等於半徑相交1點,小於半徑相交2點   2射線與球的交點 1.球的方程(x-x0)^2 + (y-y0)^2 

原创 Overload(重載) Override(覆寫)Overwrite(重寫)

C++: Overload(重載):函數或者方法有同樣的名稱,但是參數列表不相同的情形,這樣的同名不同參數的函數或者方法之間,互相稱之爲重載函數或者

原创 函數指針

函數指針是指向函數的指針變量。因而函數指針本身首先應是指針變量,只不過該指針變量指向函數。正如指針變量可指向整型變量、字符型、數組一樣,這裏是指向函數。C在編譯時,每一個函數都有一個入口地址,該入口地址就是函數指針所指向的地址。有了指向函

原创 linux mongo安裝調試常見坑

1.無法遠程連接——因爲默認配置綁定的是127.0.0.1。修改/etc/mongodb.conf中的bind_ip,改成0.0.0.0就可以連接了。 2.如果要在一臺機器上跑多個mongodb的話可以把port註釋掉,然後啓動的時候帶上

原创 linux redis安裝調試常見坑

常見的坑 1. 在win上下載linux包解壓並拷貝到linux上去make——請直接在linux上下載,命令如下 $ wget http://download.redis.io/releases/redis-4.0.10.tar.gz