大佬教程收集整理的这篇文章主要介绍了cocos2d 自带算法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
/**@defCCRANDOM_MINUS1_1 returnsarandomfloatbetween-1and1 返回一个随机漂浮在-1和1之间的随机数*/ #defineCCRANDOM_MINUS1_1()((2.0f*((float)rand()/RAND_MAX))-1.0f) /**@defCCRANDOM_0_1 returnsarandomfloatbetween0and1 返回一个随机漂浮在0和1之间的随机数 */ #defineCCRANDOM_0_1()((float)rand()/RAND_MAX) /**@defCC_DEGREES_TO_RADIANS convertsdegreestoradians 将度转换为弧度 */ #defineCC_DEGREES_TO_RADIANS(__ANGLE__)((__ANGLE__)*0.01745329252f)//PI/180 /**@defCC_RADIANS_TO_DEGREES convertsradianstodegrees 将弧度转换成度 */ #defineCC_RADIANS_TO_DEGREES(__ANGLE__)((__ANGLE__)*57.29577951f)//PI*180 ************************************************************************************* /**HelpermacrothatcreatesaVec2 @returnVec2 @sincev0.7.2 */ CC_DEPRECATED_ATTRIBUTEinlineVec2ccp(floatx,floaty) { returnVec2(x,y); } /**Returnsoppositeofpoint. @returnVec2 @sincev0.7.2 @deprecatedpleaseuseVec2::-,forexample:-v1 */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2 ccpNeg(constVec2&v) { return-v; } /**Calculatessumoftwopoints. @returnVec2 @sincev0.7.2 @deprecatedpleaseuseVec2::+,forexample:v1+v2 */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2 ccpAdd(constVec2&v1,constVec2&v2) { returnv1+v2; } /**Calculatesdifferenceoftwopoints. @returnVec2 @sincev0.7.2 @deprecatedpleaseuseVec2::-,forexample:v1-v2 */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2 ccpSub(constVec2&v1,constVec2&v2) { returnv1-v2; } /**Returnspointmultipliedbygivenfactor. @returnVec2 @sincev0.7.2 @deprecatedpleaseuseVec2::*,forexample:v1*v2 */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2 ccpMult(constVec2&v,constfloats) { returnv*s; } /**Calculatesmidpointbetweentwopoints. @returnVec2 @sincev0.7.2 @deprecatedpleaseuseitlike(v1+v2)/2.0f */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2 ccpMidpoint(constVec2&v1,constVec2&v2) { returnv1.getMidpoint(v2); } /**Calculatesdotproductoftwopoints. @returnfloat @sincev0.7.2 */ CC_DEPRECATED_ATTRIBUTEstaticinlinefloat ccpDot(constVec2&v1,constVec2&v2) { returnv1.dot(v2); } /**Calculatescrossproductoftwopoints. @returnfloat @sincev0.7.2 */ CC_DEPRECATED_ATTRIBUTEstaticinlinefloat ccpCross(constVec2&v1,constVec2&v2) { returnv1.cross(v2); } /**CalculatesperpenDicularofv,rotated90degreescounter-clockwise--cross(v,perp(v))>=0 @returnVec2 @sincev0.7.2 */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2 ccpPerp(constVec2&v) { returnv.getPerp(); } /**CalculatesperpenDicularofv,rotated90degreesclockwise--cross(v,rperp(v))<=0 @returnVec2 @sincev0.7.2 */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2 ccpRPerp(constVec2&v) { returnv.getRPerp(); } /**Calculatestheprojectionofv1overv2. @returnVec2 @sincev0.7.2 */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2 ccpProject(constVec2&v1,constVec2&v2) { returnv1.project(v2); } /**Rotatestwopoints. @returnVec2 @sincev0.7.2 */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2 ccpRotate(constVec2&v1,constVec2&v2) { returnv1.rotate(v2); } /**Unrotatestwopoints. @returnVec2 @sincev0.7.2 */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2 ccpUnrotate(constVec2&v1,constVec2&v2) { returnv1.unrotate(v2); } /**CalculatesthesquarelengthofaVec2(notcallingsqrt()) @returnfloat @sincev0.7.2 */ CC_DEPRECATED_ATTRIBUTEstaticinlinefloat ccpLengthSQ(constVec2&v) { returnv.getLengthSq(); } /**Calculatesthesquaredistancebetweentwopoints(notcallingsqrt()) @returnfloat @sincev1.1 */ CC_DEPRECATED_ATTRIBUTEstaticinlinefloat ccpDistanceSQ(constVec2p1,constVec2p2) { return(p1-p2).getLengthSq(); } /**Calculatesdistancebetweenpointanorigin @returnfloat @sincev0.7.2 */ CC_DEPRECATED_ATTRIBUTEstaticinlinefloatccpLength(constVec2&v) { returnv.getLength(); } /**Calculatesthedistancebetweentwopoints @returnfloat @sincev0.7.2 */ CC_DEPRECATED_ATTRIBUTEstaticinlinefloatccpDistance(constVec2&v1,constVec2&v2) { returnv1.getDistance(v2); } /**Returnspointmultipliedtoalengthof1. @returnVec2 @sincev0.7.2 */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2ccpNormalize(constVec2&v) { returnv.getNormalized(); } /**Convertsradianstoanormalizedvector. 将弧度转换为归一化向量。 @returnVec2 @sincev0.7.2 */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2ccpForAngle(constfloata) { returnVec2::forAngle(a); } /**Convertsavectortoradians. 向量转换为弧度。 @returnfloat @sincev0.7.2 */ CC_DEPRECATED_ATTRIBUTEstaticinlinefloatccpToAngle(constVec2&v) { returnv.getAngle(); } /**Clampapointbetweenfromandto. @sincev0.99.1 */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2ccpClamp(constVec2&p,constVec2&from,constVec2&to) { returnp.getClampPoint(from,to); } /**QuicklyconvertSizetoaVec2 @sincev0.99.1 */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2ccpFromSize(constSize&s) { returnVec2(s); } /**Runamathoperationfunctiononeachpointcomponent *absf,fllorf,ceilf,roundf *anyfunctionthathasthesignature:floatfunc(float); *Forexample:let'stry@R_554_10586@kethefloorofx,y *ccpCompOp(p,floorf); @sincev0.99.1 */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2ccpCompOp(constVec2&p,float(*opFunC)(float)) { returnp.compOp(opFunc); } /**LinearInterpolationbetweentwopointsaandb @returns alpha==0?a alpha==1?b otherwiseavaluebetweena..b @sincev0.99.1 */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2ccpLerp(constVec2&a,constVec2&b,floatalpha) { returna.lerp(b,alpha); } /**@returnsifpointshavefuzzyequalitywhichmeansequalwithsomedegreeofvariance. @sincev0.99.1 */ CC_DEPRECATED_ATTRIBUTEstaticinlineBoolCcpFuzzyEqual(constVec2&a,floatvariancE) { returna.fuzzyEquals(b,variancE); } /**Multipliesaandbcomponents,a.x*b.x,a.y*b.y @returnsacomponent-wisemultiplication @sincev0.99.1 */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2ccpCompMult(constVec2&a,constVec2&b) { returnVec2(a.x*b.x,a.y*b.y); } /**@returnsthesignedangleinradiansbetweentwovectordirections @sincev0.99.1 */ CC_DEPRECATED_ATTRIBUTEstaticinlinefloatccpAngleSigned(constVec2&a,constVec2&b) { returna.getAngle(b); } /**@returnstheangleinradiansbetweentwovectordirections @sincev0.99.1 */ CC_DEPRECATED_ATTRIBUTEstaticinlinefloatccpAngle(constVec2&a,constVec2&b) { returna.getAngle(b); } /**Rotatesapointcounterclockwisebytheanglearoundapivot @paramvisthepointtorotate @parampivotisthepivot,naturally @paramangleistheangLeofrotationcwinradians @returnstherotatedpoint @sincev0.99.1 */ CC_DEPRECATED_ATTRIBUTEstaticinlineVec2ccpRotateByAngle(constVec2&v,constVec2&pivot,floatanglE) { returnv.rotateByAngle(pivot,anglE); } /**Ageneralline-lineintersectiontest @paramp1 isthestartpointforthefirstlineP1=(p1-p2) @paramp2 istheendpointforthefirstlineP1=(p1-p2) @paramp3 isthestartpointforthesecondlineP2=(p3-p4) @paramp4 istheendpointforthesecondlineP2=(p3-p4) @params istherangeforahitpoinTinP1(pa=p1+s*(p2-p1)) @paramt istherangeforahitpoinTinP3(pa=p2+t*(p4-p3)) @returnbool inDicaTingsuccessfulintersectionofaline notethattotrulytesTintersectionforsegmentswehavetomake surethats&tliewithin[0..1]andforrays,makesures&t>0 thehitpointisp3+t*(p4-p3); thehitpointalsoisp1+s*(p2-p1); @sincev0.99.1 */ CC_DEPRECATED_ATTRIBUTEstaticinlineBoolCcpLineIntersect(constVec2&p1,constVec2&p2,constVec2&p3,constVec2&p4,float*s,float*t) { returnVec2::isLineIntersect(p1,p2,p3,p4,s,t); } /* ccpSegmenTintersectreturnstrueifSegmentA-BintersectswithsegmentC-D @sincev1.0.0 */ CC_DEPRECATED_ATTRIBUTE staticinlineBoolCcpSegmenTintersect(constVec2&A,const Vec2&B,constVec2&C,constVec2&d) { returnVec2::isSegmenTintersect(A,B,C,D); } /* ccpIntersectPointreturnstheintersectionpointoflineA-B,C-D @sincev1.0.0 */ CC_DEPRECATED_ATTRIBUTE staticinlineVec2ccpIntersectPoint(constVec2&A,constVec2& B,constVec2&d) { returnVec2::geTintersectPoint(A,D); } CC_DEPRECATED_ATTRIBUTEinlineVec2CCPointMake(floatx,y); } CC_DEPRECATED_ATTRIBUTEinlinesizeCCSizeMake(floatwidth,floatheight) { returnSize(width,height); } CC_DEPRECATED_ATTRIBUTEinlineRectCCRectMake(floatx,floaty,floatwidth,floatheight) { returnRect(x,y,width,height); }
以上是大佬教程为你收集整理的cocos2d 自带算法全部内容,希望文章能够帮你解决cocos2d 自带算法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。