cocos2d x 自帶座標演算法

2021-09-25 09:25:19 字數 2233 閱讀 4150

數學函式:

[c++]view plain

copy

ccp(x, y); // 以座標x,y建立乙個向量  

ccpfromsize(s); // 以size s的width為x,height為y建立乙個向量  

ccpoint的加減乘除運算運算

[c++]view plain

copy

ccpadd(v1, v2); // 等價 ccp(v1.x+v2.x, v1.y+v2.y);  

ccpsub(v1, v2); // 等價 ccp(v1.x-v2.x, v1.y-v2.y);  

ccpneg(v) // 等價 ccp(-v.x, -v.y);  

ccpmult(v, s); //等價 ccp(v.x * s, v.y * s); s是個浮點數  

取中點:

[c++]view plain

copy

ccpmidpoint(v1, v2); // 等價 ccp( (v1.x + v2.x)/2, (v1.y + v2.y)/2 );  

點乘、叉乘、投影:

[c++]view plain

copy

ccpdot(v1, v2); // 等價 v1.x * v2.x + v1.y * v2.y;  

ccpcross(v1, v2); // 等價 v1.x * v2.y - v1.y * v2.x;  

ccpproject(v1, v2) // 返回的是向量v1在向量v2上的投影向量  

求長度、距離和各自的平方值:

[c++]view plain

copy

ccplength(v) // 返回向量v的長度,即點v到原點的距離  

ccplengthsq(v) // 返回向量v的長度的平方,即點v到原點的距離的平方  

ccpdistance(v1, v2) // 返回點v1到點v2的距離  

ccpdistancesq(v1, v2) // 返回點v1到點v2的距離的平方  

ccpnormalize(v) // 返回v的標準化向量,就是長度為1  

旋轉、逆時針90度、順時針90度:

[c++]view plain

copy

ccprotate(v1, v2); // 向量v1旋轉過向量v2的角度並且乘上向量v2的長度。當v2是乙個長度為1的標準向量時就是正常的旋轉了,可以配套地用ccpforangle  

ccpperp(v); // 等價於 ccp(-v.y, v.x); (因為opengl座標系是左下角為原點,所以向量v是逆時針旋轉90度)  

ccprperp(v); // 等價於 ccp(v.y, -v.x); 順時針旋轉90度  

[c++]view plain

copy

ccpforangle(a); // 返回乙個角度為弧度a的標準向量  

ccptoangle(v); // 返回向量v的弧度   

ccpangle(a, b); // 返回a,b向量指示角度的差的弧度值  

ccprotatebyangle(v, pivot, angle) // 返回向量v以pivot為旋轉軸點,按逆時針方向旋轉angle弧度  

線段相交的檢測:

[c++]view plain

copy

// 得到s和t可以通過 p1 + s * (p2 - p1) 或 p3 + t * (p4 - p3) 求得交點。  

ccpsegmentintersect(a, b c, d) // 返回線段a-b和線段c-d是否相交  

ccpintersectpoint(a, b, c, d) // 返回線段a-b和線段c-d的交點  

其他有用的:

[c++]view plain

copy

cc_radians_to_degrees(a);  // 弧度轉角度  

cc_degrees_to_radians(a);  // 角度轉弧度  

ccrandom_0_1();     // 產生0到1之間的隨機浮點數  

ccrandom_minus1_1(); // 產生-1到1之間的隨機浮點數  

COCOS2DX座標轉換

遊戲中經常會用到一些變換 遊戲中 和角色在乙個layer上,為了效率,會考慮將bullet,effect和 physicsparticle分別放到不用的層上,對應的層上使用batchnode來提高效率 和physicsparticlelauncher 粒子發射器 繫結,發射的時候,會向physics...

cocos2d x 座標辨析

閱讀了cocos2d的幾個方法 ccpoint converttonodespace const ccpoint worldpoint ccpoint converttoworldspace const ccpoint nodepoint ccpoint converttonodespacear c...

cocos2d x座標轉換

cocos2d x中,node類有六個座標轉換函式,分別是 converttoworldspace 把基於當前節點的本地座標系下的座標轉換到世界座標系中。converttonodespace 把世界座標轉換到當前節點的本地座標系中。例如,在飛機大戰專案中,寵物是玩家的子節點,玩家是遊戲場景的子節點,...