Cocos2d-x   发布时间:2022-05-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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,请注明来意。