成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

cocos2d-x懶人數學函數

移動開發 Android 游戲開發
話說做游戲開發,要用到比較多的數學計算,對于程序員來說,還是用一種懶一點的方法,cocos2d-x方便開發者投機取巧...提供了很多方便的的數學函數,方便我們的數學計算。以下是在網上收集到的一些常用的數學方法,分享給大家!

前一段時間完成了Android的一個項目之后,現在團隊開始做游戲開發了。隊友們經過討論過后,十分看好cocos2d-x,于是團隊又開始現學現賣了,決定做一個東西來練一下手。

在做cocos2d-x的時候,會發現一些問題。比如cocos2d-x的版本更新得太快了,網上的博文都是老版本的教程,新版本有一些方法已經廢棄或者改名了,加之cocos2d-x的書籍非常少,所以入門比較麻煩。

對于這種問題,我個人認為,最好還是看看官網的文檔,研究一下舊版和新版方法的差異,應該還是能解決問題的。

說正題,話說做游戲開發,要用到比較多的數學計算,對于程序員來說,還是用一種懶一點的方法,cocos2d-x方便開發者投機取巧...提供了很多方便的的數學函數,方便我們的數學計算。以下是在網上收集到的一些常用的數學方法,分享給大家!

數學函數:

  1. ccp(x, y); // 以坐標x,y創建一個向量 
  2. ccpFromSize(s); // 以size s的width為x,height為y創建一個向量   

CCPoint的加減乘除運算運算

  1. ccpAdd(v1, v2); // 等價 ccp(v1.x+v2.x, v1.y+v2.y);   
  2. ccpSub(v1, v2); // 等價 ccp(v1.x-v2.x, v1.y-v2.y);   
  3. ccpNeg(v) // 等價 ccp(-v.x, -v.y);   
  4. ccpMult(v, s); //等價 ccp(v.x * s, v.y * s); s是個浮點數 

取中點:

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

點乘、叉乘、投影:

  1. ccpDot(v1, v2); // 等價 v1.x * v2.x + v1.y * v2.y;   
  2. ccpCross(v1, v2); // 等價 v1.x * v2.y - v1.y * v2.x;   
  3. ccpProject(v1, v2) // 返回的是向量v1在向量v2上的投影向量  

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

  1. ccpLength(v) // 返回向量v的長度,即點v到原點的距離   
  2. ccpLengthSQ(v) // 返回向量v的長度的平方,即點v到原點的距離的平方   
  3. ccpDistance(v1, v2) // 返回點v1到點v2的距離   
  4. ccpDistanceSQ(v1, v2) // 返回點v1到點v2的距離的平方   
  5. ccpNormalize(v) // 返回v的標準化向量,就是長度為1 

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

  1. ccpRotate(v1, v2); // 向量v1旋轉過向量v2的角度并且乘上向量v2的長度。當v2是一個長度為1的標準向量時就是正常的旋轉了,可以配套地用ccpForAngle   
  2. ccpPerp(v); // 等價于 ccp(-v.y, v.x); (因為opengl坐標系是左下角為原點,所以向量v是逆時針旋轉90度)   
  3. ccpRPerp(v); // 等價于 ccp(v.y, -v.x); 順時針旋轉90度  

配套的有向量和弧度的轉換向量,還有一些角度相關的:

  1. ccpForAngle(a); // 返回一個角度為弧度a的標準向量   
  2. ccpToAngle(v); // 返回向量v的弧度    
  3. ccpAngle(a, b); // 返回a,b向量指示角度的差的弧度值   
  4. ccpRotateByAngle(v, pivot, angle) // 返回向量v以pivot為旋轉軸點,按逆時針方向旋轉angle弧度 

線段相交的檢測:

  1. ccpLineIntersect(p1, p2, p3, p4, &s, &t); // 返回p1為起點p2為終點線段1所在直線和p3為起點p4為終點線段2所在的直線是否相交,如果相交,參數s和t將返回交點在線段1、線段2上的比例   
  2. // 得到s和t可以通過 p1 + s * (p2 - p1) 或 p3 + t * (p4 - p3) 求得交點。   
  3. ccpSegmentIntersect(A, B C, D) // 返回線段A-B和線段C-D是否相交   
  4. ccpIntersectPoint(A, B, C, D) // 返回線段A-B和線段C-D的交點  

其他有用的:

  1. CC_RADIANS_TO_DEGREES(a);  // 弧度轉角度   
  2. CC_DEGREES_TO_RADIANS(a);  // 角度轉弧度   
  3. CCRANDOM_0_1();     // 產生0到1之間的隨機浮點數   
  4. CCRANDOM_MINUS1_1(); // 產生-1到1之間的隨機浮點數   

 

責任編輯:閆佳明 來源: csdn
相關推薦

2011-12-12 10:40:08

Cocos2d-X游戲開發開發環境

2013-05-22 15:49:46

2012-04-17 12:44:38

cocos2d-x

2012-04-17 12:38:46

cocos2d-x

2014-07-31 16:57:30

2013-06-03 17:04:20

CocoStudioCocos2D-X添加CocoStudi

2013-12-03 10:58:50

Cocos2D-X磚塊地圖

2013-05-22 14:38:44

iOS開發Cocos2d-x坐標系統

2012-04-17 12:58:44

Cocos2D-X

2012-02-19 20:10:23

Cocos2d-x fCocos2dWindows Pho

2012-04-17 10:06:08

cocos2d-x

2012-04-17 12:47:27

cocos2d-x

2012-04-17 10:59:31

cocos2d-x

2012-04-17 13:12:00

2014-08-13 10:07:02

游戲引擎

2013-11-13 16:31:32

Cocos2d-x

2012-05-09 10:09:57

Cocos2d-xAndroidiOS

2013-06-07 14:06:52

移動開發Android開發cocos2d-x

2014-06-10 11:12:34

Cocos2d-x

2014-07-31 16:48:09

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区在线日韩在线深爱 | 99精品电影 | 国产一区欧美 | 精品一区二区视频 | 亚洲天堂一区二区 | 久久婷婷色 | 日韩欧美中文 | 日韩欧美一级精品久久 | 天天看天天干 | 午夜精品久久久久久久久久久久久 | 久久久久久亚洲欧洲 | 日本电影一区二区 | 又黑又粗又长的欧美一区 | 91精品www | 免费人成在线观看网站 | 在线免费观看成年人视频 | 国产成人免费视频 | 欧美视频福利 | 久久精品成人 | 久草网址 | 99视频在线免费观看 | 精品一二三区在线观看 | 亚洲成人在线免费 | 亚洲一区二区三区免费视频 | 麻豆av片| 日本高清不卡视频 | 91精品国产综合久久婷婷香蕉 | 亚洲精品国产电影 | 极品在线| 国产精品亚洲二区 | 国产高清视频在线观看播放 | 久亚州在线播放 | 国产成人免费网站 | 欧美激情va永久在线播放 | 成人深夜福利 | 亚洲国产精品成人无久久精品 | 免费成人av | 日韩视频一区二区 | 久久精品二区 | 最新日韩在线 | 日韩在线资源 |