大佬教程收集整理的这篇文章主要介绍了cocos2d-x v3.3 RotateTo and RotateBy(windows),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
RotateTo和RotateBy可以使精灵旋转,区别在与RotateTo是旋转到指定的角度;而RotateBy是从当前角度旋转指定的角度。举个例子,假定精灵当前的角度是x,分别给RotateTo和RotateBy指定一个角度y,那么RotateTo和RotateBy最终的效果分别如下:
RotateTo:x → y
RotateBy:x → (x + y)
RotateTo和RotateBy各属一类,它们的继承关系如下:
接下来看每个类有什么接口,并结合实例说明。
RotateBy:
1、成员变量:
protected:
bool _is3D; // false: 使用带角度的3D旋转方式;true: 使用真正的3D旋转方式。
Vec3 _dstAngle; // 目标角度。
Vec3 _startAngle; // 起始角度。
Vec3 _diffAngle; // 目标角度与起始角度之差。
private:
CC_DISALLOW_COPY_AND_ASSIGN(RotateTo); // 禁用拷贝构造函数和拷贝赋值操作符。
2、成员方法:
(1) static RotateBy* create(float duration,float deltaAnglE);
static RotateBy* create(float duration,float deltaAngleZ_X,float deltaAngleZ_Y);
static RotateBy* create(float duration,const Vec3& deltaAngle3D);
实例:
实现源码:
关键点总结:
疑问:
(2) virtual RotateBy* clone() const override;
实例:
实现源码:
(3) virtual RotateBy* reverse(void) const override;
实例:
实现源码:
关键点总结:
(4) virtual void startWithTarget(Node *target) override;
virtual void update(float timE) override;
实例:
实现源码:
关键点总结:
RotateTo:
1、成员变量:
protected:
Vec3 _dstAngle; // 目标角度。
Vec3 _diffAngle; // 目标角度与起始角度之间的差值。
2、成员方法:
(1) void calculateAngles(float &startAngle,float &diffAngle,float dstAnglE);
实例:
实现源码:
关键点总结:
(2) virtual void startWithTarget(Node *target) override;
virtual void update(float timE) override;
以上是大佬教程为你收集整理的cocos2d-x v3.3 RotateTo and RotateBy(windows)全部内容,希望文章能够帮你解决cocos2d-x v3.3 RotateTo and RotateBy(windows)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。