前一段时间完成了Android的一个项目之后,现在团队开始做游戏开发了。队友们经过讨论过后,十分看好cocos2d-x,于是团队又开始现学现卖了,决定做一个东西来练一下手。
在做cocos2d-x的时候,会发现一些问题。比如cocos2d-x的版本更新得太快了,网上的博文都是老版本的教程,新版本有一些方法已经废弃或者改名了,加之cocos2d-x的书籍非常少,所以入门比较麻烦。
对于这种问题,我个人认为,最好还是看看官网的文档,研究一下旧版和新版方法的差异,应该还是能解决问题的。
说正题,话说做游戏开发,要用到比较多的数学计算,对于程序员来说,还是用一种懒一点的方法,cocos2d-x方便开发者投机取巧...提供了很多方便的的数学函数,方便我们的数学计算。以下是在网上收集到的一些常用的数学方法,分享给大家!
数学函数:
- ccp(x, y);
- ccpFromSize(s);
CCPoint的加减乘除运算运算
- ccpAdd(v1, v2);
- ccpSub(v1, v2);
- ccpNeg(v)
- ccpMult(v, s);
取中点:
- ccpMidpoint(v1, v2);
点乘、叉乘、投影:
- ccpDot(v1, v2);
- ccpCross(v1, v2);
- ccpProject(v1, v2)
求长度、距离和各自的平方值:
- ccpLength(v)
- ccpLengthSQ(v)
- ccpDistance(v1, v2)
- ccpDistanceSQ(v1, v2)
- ccpNormalize(v)
旋转、逆时针90度、顺时针90度:
- ccpRotate(v1, v2);
- ccpPerp(v);
- ccpRPerp(v);
配套的有向量和弧度的转换向量,还有一些角度相关的:
- ccpForAngle(a);
- ccpToAngle(v);
- ccpAngle(a, b);
- ccpRotateByAngle(v, pivot, angle)
线段相交的检测:
- ccpLineIntersect(p1, p2, p3, p4, &s, &t);
-
- ccpSegmentIntersect(A, B C, D)
- ccpIntersectPoint(A, B, C, D)
其他有用的:
- CC_RADIANS_TO_DEGREES(a);
- CC_DEGREES_TO_RADIANS(a);
- CCRANDOM_0_1();
- CCRANDOM_MINUS1_1();
转载地址:http://mobile.51cto.com/aprogram-389740.htm