日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
cocos2d-x懶人數(shù)學(xué)函數(shù)

前一段時(shí)間完成了Android的一個(gè)項(xiàng)目之后,現(xiàn)在團(tuán)隊(duì)開(kāi)始做游戲開(kāi)發(fā)了。隊(duì)友們經(jīng)過(guò)討論過(guò)后,十分看好cocos2d-x,于是團(tuán)隊(duì)又開(kāi)始現(xiàn)學(xué)現(xiàn)賣了,決定做一個(gè)東西來(lái)練一下手。

創(chuàng)新互聯(lián)公司2013年開(kāi)創(chuàng)至今,先為井岡山等服務(wù)建站,井岡山等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為井岡山企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

在做cocos2d-x的時(shí)候,會(huì)發(fā)現(xiàn)一些問(wèn)題。比如cocos2d-x的版本更新得太快了,網(wǎng)上的博文都是老版本的教程,新版本有一些方法已經(jīng)廢棄或者改名了,加之cocos2d-x的書(shū)籍非常少,所以入門(mén)比較麻煩。

對(duì)于這種問(wèn)題,我個(gè)人認(rèn)為,最好還是看看官網(wǎng)的文檔,研究一下舊版和新版方法的差異,應(yīng)該還是能解決問(wèn)題的。

說(shuō)正題,話說(shuō)做游戲開(kāi)發(fā),要用到比較多的數(shù)學(xué)計(jì)算,對(duì)于程序員來(lái)說(shuō),還是用一種懶一點(diǎn)的方法,cocos2d-x方便開(kāi)發(fā)者投機(jī)取巧...提供了很多方便的的數(shù)學(xué)函數(shù),方便我們的數(shù)學(xué)計(jì)算。以下是在網(wǎng)上收集到的一些常用的數(shù)學(xué)方法,分享給大家!

數(shù)學(xué)函數(shù):

 
 
  1. ccp(x, y); // 以坐標(biāo)x,y創(chuàng)建一個(gè)向量 
  2. ccpFromSize(s); // 以size s的width為x,height為y創(chuàng)建一個(gè)向量   

CCPoint的加減乘除運(yùn)算運(yùn)算

 
 
  1. ccpAdd(v1, v2); // 等價(jià) ccp(v1.x+v2.x, v1.y+v2.y);   
  2. ccpSub(v1, v2); // 等價(jià) ccp(v1.x-v2.x, v1.y-v2.y);   
  3. ccpNeg(v) // 等價(jià) ccp(-v.x, -v.y);   
  4. ccpMult(v, s); //等價(jià) ccp(v.x * s, v.y * s); s是個(gè)浮點(diǎn)數(shù) 

取中點(diǎn):

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

點(diǎn)乘、叉乘、投影:

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

求長(zhǎng)度、距離和各自的平方值:

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

旋轉(zhuǎn)、逆時(shí)針90度、順時(shí)針90度:

 
 
  1. ccpRotate(v1, v2); // 向量v1旋轉(zhuǎn)過(guò)向量v2的角度并且乘上向量v2的長(zhǎng)度。當(dāng)v2是一個(gè)長(zhǎng)度為1的標(biāo)準(zhǔn)向量時(shí)就是正常的旋轉(zhuǎn)了,可以配套地用ccpForAngle   
  2. ccpPerp(v); // 等價(jià)于 ccp(-v.y, v.x); (因?yàn)閛pengl坐標(biāo)系是左下角為原點(diǎn),所以向量v是逆時(shí)針旋轉(zhuǎn)90度)   
  3. ccpRPerp(v); // 等價(jià)于 ccp(v.y, -v.x); 順時(shí)針旋轉(zhuǎn)90度  

配套的有向量和弧度的轉(zhuǎn)換向量,還有一些角度相關(guān)的:

 
 
  1. ccpForAngle(a); // 返回一個(gè)角度為弧度a的標(biāo)準(zhǔn)向量   
  2. ccpToAngle(v); // 返回向量v的弧度    
  3. ccpAngle(a, b); // 返回a,b向量指示角度的差的弧度值   
  4. ccpRotateByAngle(v, pivot, angle) // 返回向量v以pivot為旋轉(zhuǎn)軸點(diǎn),按逆時(shí)針?lè)较蛐D(zhuǎn)angle弧度 

線段相交的檢測(cè):

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

其他有用的:

 
 
  1. CC_RADIANS_TO_DEGREES(a);  // 弧度轉(zhuǎn)角度   
  2. CC_DEGREES_TO_RADIANS(a);  // 角度轉(zhuǎn)弧度   
  3. CCRANDOM_0_1();     // 產(chǎn)生0到1之間的隨機(jī)浮點(diǎn)數(shù)   
  4. CCRANDOM_MINUS1_1(); // 產(chǎn)生-1到1之間的隨機(jī)浮點(diǎn)數(shù)   

本文題目:cocos2d-x懶人數(shù)學(xué)函數(shù)
網(wǎng)頁(yè)網(wǎng)址:http://m.5511xx.com/article/djjhjic.html