數學函式:
ccp(x, y); // 以座標x,y建立乙個向量ccpoint的加減乘除運算運算ccpfromsize(s); // 以size s的width為x,height為y建立乙個向量
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是個浮點數
ccpmidpoint(v1, v2); // 等價 ccp( (v1.x + v2.x)/2, (v1.y + v2.y)/2 );點乘、叉乘、投影:
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上的投影向量
ccplength(v) // 返回向量v的長度,即點v到原點的距離旋轉、逆時針90度、順時針90度:ccplengthsq(v) // 返回向量v的長度的平方,即點v到原點的距離的平方
ccpdistance(v1, v2) // 返回點v1到點v2的距離
ccpdistancesq(v1, v2) // 返回點v1到點v2的距離的平方
ccpnormalize(v) // 返回v的標準化向量,就是長度為1
ccprotate(v1, v2); // 向量v1旋轉過向量v2的角度並且乘上向量v2的長度。當v2是乙個長度為1的標準向量時就是正常的旋轉了,可以配套地用ccpforangleccpperp(v); // 等價於 ccp(-v.y, v.x); (因為opengl座標系是左下角為原點,所以向量v是逆時針旋轉90度)
ccprperp(v); // 等價於 ccp(v.y, -v.x); 順時針旋轉90度
ccpforangle(a); // 返回乙個角度為弧度a的標準向量線段相交的檢測:ccptoangle(v); // 返回向量v的弧度
ccpangle(a, b); // 返回a,b向量指示角度的差的弧度值
ccprotatebyangle(v, pivot, angle) // 返回向量v以pivot為旋轉軸點,按逆時針方向旋轉angle弧度
// 得到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的交點
其他有用的:
cc_radians_to_degrees(a); // 弧度轉角度cc_degrees_to_radians(a); // 角度轉弧度
ccrandom_0_1(); // 產生0到1之間的隨機浮點數
ccrandom_minus1_1(); // 產生-1到1之間的隨機浮點數
COCOS2D X常用巨集
控制台輸出 define cclog 控制台警告輸出 define cclogwarn 控制台資訊輸出 define ccloginfo 交換 x,y的值 define cc swap x,y 生成乙個 1 到 1的隨機數 define ccrandom minus1 1 生成乙個 0 到 1的隨機...
cocos2dx 幾種常用action
1.moveto和moveby cc.moveto是 移動到這裡 而cc.moveby則是 相對於之前點再移動 通俗一點就是說這裡需要兩個座標pos1 x1,y1 pos2 x2,y2 例如 actionmoveleft cc.moveby create 1,cc.p 3,0 相對於原來的位置在1秒...
cocos2d x 中的一些數學函式
ccp x,y 以座標x,y建立乙個向量 ccpfromsize s 以size s的width為x,height為y建立乙個向量 ccpoint的加減乘除運算運算 ccpadd v1,v2 等價 ccp v1.x v2.x,v1.y v2.y ccpsub v1,v2 等價 ccp v1.x v2...