对于之前出现的ccp,你是不是不了解呢?没关系,这一章我们将学习Cocos中的数学类。
本文仅供个人记录和复习,不用于其他用途
常用数学类
在2.x版本中,我们使用setPosition()时经常要使用到ccp()这样一个宏。那么事实上,这个ccp()是有关于向量的运算。在3.x版本中,各种类型的ccp()都整合到了Vec2这个类中。一般来讲,我们用到的有下面几个类:
Vec2SizeRect
Vec2
Vec2类的介绍
Vec2表示一个二维坐标点,也可以表示一个二维向量。2.x版本中的ccp()整合到了Vec2中,所以坐标和向量我们可以使用这个类。当然,我们还可以使用Vec3和Vec4来表示三维坐标和四维坐标。
|
|
上面是Vec2类的几种不同的构造方法,另外,这个类只有x、y两个float变量来存储位置信息。
|
|
使用set()方法可以重新设定坐标值。
向量运算
这里罗列了各种向量有关的运算,代码注释是借用了别人的,感兴趣的可以自己查看Vec2类的实现:
|
|
运算符重载
|
|
静态函数与常量
Vec2类还定义了不少静态的方法和常量,方便使用:
|
|
线段相交检测
|
|
Size
Size类很简单,类似于2.x的CCSize,只有width和height两个成员变量。Size和Vec2可以转换。
|
|
Rect
我们在初始化精灵时,可以传入Rect()这个参数。那么事实上,Rect的意思是矩形。也就是说,我们可以规定精灵的显示内容有多少。Rect以左下角为原点,注意,之前我们在纹理一章提到过Rect,不过那个Rect使用的是UI坐标系,以左上角为原点。
|
|