对于之前出现的ccp,你是不是不了解呢?没关系,这一章我们将学习Cocos中的数学类。
本文仅供个人记录和复习,不用于其他用途
常用数学类
在2.x版本中,我们使用setPosition()
时经常要使用到ccp()
这样一个宏。那么事实上,这个ccp()
是有关于向量的运算。在3.x版本中,各种类型的ccp()
都整合到了Vec2
这个类中。一般来讲,我们用到的有下面几个类:
Vec2
Size
Rect
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坐标系,以左上角为原点。
|
|