mirror of https://github.com/axmolengine/axmol.git
changes in API to support 3D
This commit is contained in:
parent
94977930b5
commit
fe1160cd8c
|
@ -747,7 +747,7 @@ void RotateTo::startWithTarget(Node *target)
|
||||||
ActionInterval::startWithTarget(target);
|
ActionInterval::startWithTarget(target);
|
||||||
|
|
||||||
// Calculate X
|
// Calculate X
|
||||||
_startAngleX = target->getRotationX();
|
_startAngleX = target->getRotationSkewX();
|
||||||
if (_startAngleX > 0)
|
if (_startAngleX > 0)
|
||||||
{
|
{
|
||||||
_startAngleX = fmodf(_startAngleX, 360.0f);
|
_startAngleX = fmodf(_startAngleX, 360.0f);
|
||||||
|
@ -768,7 +768,7 @@ void RotateTo::startWithTarget(Node *target)
|
||||||
}
|
}
|
||||||
|
|
||||||
//Calculate Y: It's duplicated from calculating X since the rotation wrap should be the same
|
//Calculate Y: It's duplicated from calculating X since the rotation wrap should be the same
|
||||||
_startAngleY = _target->getRotationY();
|
_startAngleY = _target->getRotationSkewY();
|
||||||
|
|
||||||
if (_startAngleY > 0)
|
if (_startAngleY > 0)
|
||||||
{
|
{
|
||||||
|
@ -795,8 +795,8 @@ void RotateTo::update(float time)
|
||||||
{
|
{
|
||||||
if (_target)
|
if (_target)
|
||||||
{
|
{
|
||||||
_target->setRotationX(_startAngleX + _diffAngleX * time);
|
_target->setRotationSkewX(_startAngleX + _diffAngleX * time);
|
||||||
_target->setRotationY(_startAngleY + _diffAngleY * time);
|
_target->setRotationSkewY(_startAngleY + _diffAngleY * time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -819,17 +819,6 @@ RotateBy* RotateBy::create(float duration, float deltaAngle)
|
||||||
return rotateBy;
|
return rotateBy;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RotateBy::initWithDuration(float duration, float deltaAngle)
|
|
||||||
{
|
|
||||||
if (ActionInterval::initWithDuration(duration))
|
|
||||||
{
|
|
||||||
_angleX = _angleY = deltaAngle;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
RotateBy* RotateBy::create(float duration, float deltaAngleX, float deltaAngleY)
|
RotateBy* RotateBy::create(float duration, float deltaAngleX, float deltaAngleY)
|
||||||
{
|
{
|
||||||
RotateBy *rotateBy = new RotateBy();
|
RotateBy *rotateBy = new RotateBy();
|
||||||
|
@ -839,23 +828,64 @@ RotateBy* RotateBy::create(float duration, float deltaAngleX, float deltaAngleY)
|
||||||
return rotateBy;
|
return rotateBy;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RotateBy::initWithDuration(float duration, float deltaAngleX, float deltaAngleY)
|
RotateBy* RotateBy::create(float duration, const Vertex3F& deltaAngle3D)
|
||||||
|
{
|
||||||
|
RotateBy *rotateBy = new RotateBy();
|
||||||
|
rotateBy->initWithDuration(duration, deltaAngle3D);
|
||||||
|
rotateBy->autorelease();
|
||||||
|
|
||||||
|
return rotateBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
RotateBy::RotateBy()
|
||||||
|
: _is3D(false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool RotateBy::initWithDuration(float duration, float deltaAngle)
|
||||||
{
|
{
|
||||||
if (ActionInterval::initWithDuration(duration))
|
if (ActionInterval::initWithDuration(duration))
|
||||||
{
|
{
|
||||||
_angleX = deltaAngleX;
|
_angleZ_X = _angleZ_Y = deltaAngle;
|
||||||
_angleY = deltaAngleY;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool RotateBy::initWithDuration(float duration, float deltaAngleX, float deltaAngleY)
|
||||||
|
{
|
||||||
|
if (ActionInterval::initWithDuration(duration))
|
||||||
|
{
|
||||||
|
_angleZ_X = deltaAngleX;
|
||||||
|
_angleZ_Y = deltaAngleY;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool RotateBy::initWithDuration(float duration, const Vertex3F& deltaAngle3D)
|
||||||
|
{
|
||||||
|
if (ActionInterval::initWithDuration(duration))
|
||||||
|
{
|
||||||
|
_angle3D = deltaAngle3D;
|
||||||
|
_is3D = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
RotateBy* RotateBy::clone(void) const
|
RotateBy* RotateBy::clone(void) const
|
||||||
{
|
{
|
||||||
// no copy constructor
|
// no copy constructor
|
||||||
auto a = new RotateBy();
|
auto a = new RotateBy();
|
||||||
a->initWithDuration(_duration, _angleX, _angleY);
|
if(_is3D)
|
||||||
|
a->initWithDuration(_duration, _angle3D);
|
||||||
|
else
|
||||||
|
a->initWithDuration(_duration, _angleZ_X, _angleZ_Y);
|
||||||
a->autorelease();
|
a->autorelease();
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
@ -863,8 +893,15 @@ RotateBy* RotateBy::clone(void) const
|
||||||
void RotateBy::startWithTarget(Node *target)
|
void RotateBy::startWithTarget(Node *target)
|
||||||
{
|
{
|
||||||
ActionInterval::startWithTarget(target);
|
ActionInterval::startWithTarget(target);
|
||||||
_startAngleX = target->getRotationX();
|
if(_is3D)
|
||||||
_startAngleY = target->getRotationY();
|
{
|
||||||
|
_startAngle3D = target->getRotation3D();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_startAngleZ_X = target->getRotationSkewX();
|
||||||
|
_startAngleZ_Y = target->getRotationSkewY();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void RotateBy::update(float time)
|
void RotateBy::update(float time)
|
||||||
|
@ -872,14 +909,33 @@ void RotateBy::update(float time)
|
||||||
// XXX: shall I add % 360
|
// XXX: shall I add % 360
|
||||||
if (_target)
|
if (_target)
|
||||||
{
|
{
|
||||||
_target->setRotationX(_startAngleX + _angleX * time);
|
if(_is3D)
|
||||||
_target->setRotationY(_startAngleY + _angleY * time);
|
{
|
||||||
|
Vertex3F v;
|
||||||
|
v.x = _startAngle3D.x + _angle3D.x * time;
|
||||||
|
v.y = _startAngle3D.y + _angle3D.y * time;
|
||||||
|
v.z = _startAngle3D.z + _angle3D.z * time;
|
||||||
|
_target->setRotation3D(v);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_target->setRotationSkewX(_startAngleZ_X + _angleZ_X * time);
|
||||||
|
_target->setRotationSkewY(_startAngleZ_Y + _angleZ_Y * time);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RotateBy* RotateBy::reverse() const
|
RotateBy* RotateBy::reverse() const
|
||||||
{
|
{
|
||||||
return RotateBy::create(_duration, -_angleX, -_angleY);
|
if(_is3D)
|
||||||
|
{
|
||||||
|
Vertex3F v;
|
||||||
|
v.x = - _angle3D.x;
|
||||||
|
v.y = - _angle3D.y;
|
||||||
|
v.z = - _angle3D.z;
|
||||||
|
return RotateBy::create(_duration, v);
|
||||||
|
}
|
||||||
|
return RotateBy::create(_duration, -_angleZ_X, -_angleZ_Y);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -322,7 +322,8 @@ class CC_DLL RotateBy : public ActionInterval
|
||||||
public:
|
public:
|
||||||
/** creates the action */
|
/** creates the action */
|
||||||
static RotateBy* create(float duration, float deltaAngle);
|
static RotateBy* create(float duration, float deltaAngle);
|
||||||
static RotateBy* create(float duration, float deltaAngleX, float deltaAngleY);
|
static RotateBy* create(float duration, float deltaAngleZ_X, float deltaAngleZ_Y);
|
||||||
|
static RotateBy* create(float duration, const Vertex3F& deltaAngle3D);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Override
|
// Override
|
||||||
|
@ -333,16 +334,21 @@ public:
|
||||||
virtual void update(float time) override;
|
virtual void update(float time) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
RotateBy() {}
|
RotateBy();
|
||||||
virtual ~RotateBy() {}
|
virtual ~RotateBy() {}
|
||||||
/** initializes the action */
|
/** initializes the action */
|
||||||
bool initWithDuration(float duration, float deltaAngle);
|
bool initWithDuration(float duration, float deltaAngle);
|
||||||
bool initWithDuration(float duration, float deltaAngleX, float deltaAngleY);
|
bool initWithDuration(float duration, float deltaAngleZ_X, float deltaAngleZ_Y);
|
||||||
|
bool initWithDuration(float duration, const Vertex3F& deltaAngle3D);
|
||||||
|
|
||||||
float _angleX;
|
float _angleZ_X;
|
||||||
float _startAngleX;
|
float _startAngleZ_X;
|
||||||
float _angleY;
|
float _angleZ_Y;
|
||||||
float _startAngleY;
|
float _startAngleZ_Y;
|
||||||
|
|
||||||
|
bool _is3D;
|
||||||
|
Vertex3F _angle3D;
|
||||||
|
Vertex3F _startAngle3D;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CC_DISALLOW_COPY_AND_ASSIGN(RotateBy);
|
CC_DISALLOW_COPY_AND_ASSIGN(RotateBy);
|
||||||
|
|
|
@ -59,6 +59,7 @@ THE SOFTWARE.
|
||||||
#include "CCEventCustom.h"
|
#include "CCEventCustom.h"
|
||||||
#include "CCFontFreeType.h"
|
#include "CCFontFreeType.h"
|
||||||
#include "renderer/CCRenderer.h"
|
#include "renderer/CCRenderer.h"
|
||||||
|
#include "renderer/CCFrustum.h"
|
||||||
#include "CCConsole.h"
|
#include "CCConsole.h"
|
||||||
|
|
||||||
#include "kazmath/kazmath.h"
|
#include "kazmath/kazmath.h"
|
||||||
|
@ -446,7 +447,7 @@ void Director::setProjection(Projection projection)
|
||||||
kmGLLoadIdentity();
|
kmGLLoadIdentity();
|
||||||
|
|
||||||
// issue #1334
|
// issue #1334
|
||||||
kmMat4PerspectiveProjection(&matrixPerspective, 60, (GLfloat)size.width/size.height, 0.1f, zeye*2);
|
kmMat4PerspectiveProjection(&matrixPerspective, 60, (GLfloat)size.width/size.height, 10, zeye+size.height/2);
|
||||||
// kmMat4PerspectiveProjection( &matrixPerspective, 60, (GLfloat)size.width/size.height, 0.1f, 1500);
|
// kmMat4PerspectiveProjection( &matrixPerspective, 60, (GLfloat)size.width/size.height, 0.1f, 1500);
|
||||||
|
|
||||||
kmGLMultMatrix(&matrixPerspective);
|
kmGLMultMatrix(&matrixPerspective);
|
||||||
|
|
|
@ -590,7 +590,7 @@ void LayerColor::draw()
|
||||||
for(int i = 0; i < 4; ++i)
|
for(int i = 0; i < 4; ++i)
|
||||||
{
|
{
|
||||||
kmVec3 pos;
|
kmVec3 pos;
|
||||||
pos.x = _squareVertices[i].x; pos.y = _squareVertices[i].y; pos.z = _vertexZ;
|
pos.x = _squareVertices[i].x; pos.y = _squareVertices[i].y; pos.z = _positionZ;
|
||||||
kmVec3TransformCoord(&pos, &pos, &_modelViewTransform);
|
kmVec3TransformCoord(&pos, &pos, &_modelViewTransform);
|
||||||
_noMVPVertices[i] = Vertex3F(pos.x,pos.y,pos.z);
|
_noMVPVertices[i] = Vertex3F(pos.x,pos.y,pos.z);
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,9 +77,12 @@ static int s_globalOrderOfArrival = 1;
|
||||||
Node::Node(void)
|
Node::Node(void)
|
||||||
: _rotationX(0.0f)
|
: _rotationX(0.0f)
|
||||||
, _rotationY(0.0f)
|
, _rotationY(0.0f)
|
||||||
|
, _rotationZ_X(0.0f)
|
||||||
|
, _rotationZ_Y(0.0f)
|
||||||
, _scaleX(1.0f)
|
, _scaleX(1.0f)
|
||||||
, _scaleY(1.0f)
|
, _scaleY(1.0f)
|
||||||
, _vertexZ(0.0f)
|
, _scaleZ(1.0f)
|
||||||
|
, _positionZ(0.0f)
|
||||||
, _position(Point::ZERO)
|
, _position(Point::ZERO)
|
||||||
, _skewX(0.0f)
|
, _skewX(0.0f)
|
||||||
, _skewY(0.0f)
|
, _skewY(0.0f)
|
||||||
|
@ -230,32 +233,17 @@ void Node::setGlobalZOrder(float globalZOrder)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// vertexZ getter
|
|
||||||
float Node::getVertexZ() const
|
|
||||||
{
|
|
||||||
return _vertexZ;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// vertexZ setter
|
|
||||||
void Node::setVertexZ(float zOrder)
|
|
||||||
{
|
|
||||||
_vertexZ = zOrder;
|
|
||||||
setGlobalZOrder(zOrder);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// rotation getter
|
/// rotation getter
|
||||||
float Node::getRotation() const
|
float Node::getRotation() const
|
||||||
{
|
{
|
||||||
CCASSERT(_rotationX == _rotationY, "CCNode#rotation. RotationX != RotationY. Don't know which one to return");
|
CCASSERT(_rotationZ_X == _rotationZ_Y, "CCNode#rotation. RotationX != RotationY. Don't know which one to return");
|
||||||
return _rotationX;
|
return _rotationZ_X;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// rotation setter
|
/// rotation setter
|
||||||
void Node::setRotation(float newRotation)
|
void Node::setRotation(float newRotation)
|
||||||
{
|
{
|
||||||
_rotationX = _rotationY = newRotation;
|
_rotationZ_X = _rotationZ_Y = newRotation;
|
||||||
_transformDirty = _inverseDirty = true;
|
_transformDirty = _inverseDirty = true;
|
||||||
|
|
||||||
#if CC_USE_PHYSICS
|
#if CC_USE_PHYSICS
|
||||||
|
@ -266,25 +254,51 @@ void Node::setRotation(float newRotation)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
float Node::getRotationX() const
|
float Node::getRotationSkewX() const
|
||||||
{
|
{
|
||||||
return _rotationX;
|
return _rotationZ_X;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Node::setRotationX(float fRotationX)
|
void Node::setRotation3D(const Vertex3F& rotation)
|
||||||
{
|
{
|
||||||
_rotationX = fRotationX;
|
_transformDirty = _inverseDirty = true;
|
||||||
|
|
||||||
|
_rotationX = rotation.x;
|
||||||
|
_rotationY = rotation.y;
|
||||||
|
|
||||||
|
// rotation Z is decomposed in 2 to simulate Skew for Flash animations
|
||||||
|
_rotationZ_Y = _rotationZ_X = rotation.z;
|
||||||
|
|
||||||
|
#if CC_USE_PHYSICS
|
||||||
|
if (_physicsBody)
|
||||||
|
{
|
||||||
|
_physicsBody->setRotation(_rotationZ_X);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
Vertex3F Node::getRotation3D() const
|
||||||
|
{
|
||||||
|
// rotation Z is decomposed in 2 to simulate Skew for Flash animations
|
||||||
|
CCASSERT(_rotationZ_X == _rotationZ_Y, "_rotationZ_X != _rotationZ_Y");
|
||||||
|
|
||||||
|
return Vertex3F(_rotationX,_rotationY,_rotationZ_X);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Node::setRotationSkewX(float fRotationX)
|
||||||
|
{
|
||||||
|
_rotationZ_X = fRotationX;
|
||||||
_transformDirty = _inverseDirty = true;
|
_transformDirty = _inverseDirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
float Node::getRotationY() const
|
float Node::getRotationSkewY() const
|
||||||
{
|
{
|
||||||
return _rotationY;
|
return _rotationZ_Y;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Node::setRotationY(float rotationY)
|
void Node::setRotationSkewY(float rotationY)
|
||||||
{
|
{
|
||||||
_rotationY = rotationY;
|
_rotationZ_Y = rotationY;
|
||||||
_transformDirty = _inverseDirty = true;
|
_transformDirty = _inverseDirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -329,6 +343,19 @@ float Node::getScaleY() const
|
||||||
return _scaleY;
|
return _scaleY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// scaleY setter
|
||||||
|
void Node::setScaleZ(float newScaleZ)
|
||||||
|
{
|
||||||
|
_scaleZ = newScaleZ;
|
||||||
|
_transformDirty = _inverseDirty = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// scaleY getter
|
||||||
|
float Node::getScaleZ() const
|
||||||
|
{
|
||||||
|
return _scaleZ;
|
||||||
|
}
|
||||||
|
|
||||||
/// scaleY setter
|
/// scaleY setter
|
||||||
void Node::setScaleY(float newScaleY)
|
void Node::setScaleY(float newScaleY)
|
||||||
{
|
{
|
||||||
|
@ -336,6 +363,7 @@ void Node::setScaleY(float newScaleY)
|
||||||
_transformDirty = _inverseDirty = true;
|
_transformDirty = _inverseDirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// position getter
|
/// position getter
|
||||||
const Point& Node::getPosition() const
|
const Point& Node::getPosition() const
|
||||||
{
|
{
|
||||||
|
@ -367,26 +395,72 @@ void Node::setPosition(float x, float y)
|
||||||
setPosition(Point(x, y));
|
setPosition(Point(x, y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Node::setPosition3D(const Vertex3F& position)
|
||||||
|
{
|
||||||
|
_positionZ = position.z;
|
||||||
|
setPosition(Point(position.x, position.y));
|
||||||
|
}
|
||||||
|
|
||||||
|
Vertex3F Node::getPosition3D() const
|
||||||
|
{
|
||||||
|
Vertex3F ret;
|
||||||
|
ret.x = _position.x;
|
||||||
|
ret.y = _position.y;
|
||||||
|
ret.z = _positionZ;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
float Node::getPositionX() const
|
float Node::getPositionX() const
|
||||||
{
|
{
|
||||||
return _position.x;
|
return _position.x;
|
||||||
}
|
}
|
||||||
|
|
||||||
float Node::getPositionY() const
|
|
||||||
{
|
|
||||||
return _position.y;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Node::setPositionX(float x)
|
void Node::setPositionX(float x)
|
||||||
{
|
{
|
||||||
setPosition(Point(x, _position.y));
|
setPosition(Point(x, _position.y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float Node::getPositionY() const
|
||||||
|
{
|
||||||
|
return _position.y;
|
||||||
|
}
|
||||||
|
|
||||||
void Node::setPositionY(float y)
|
void Node::setPositionY(float y)
|
||||||
{
|
{
|
||||||
setPosition(Point(_position.x, y));
|
setPosition(Point(_position.x, y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float Node::getPositionZ() const
|
||||||
|
{
|
||||||
|
return _positionZ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Node::setPositionZ(float positionZ)
|
||||||
|
{
|
||||||
|
_transformDirty = _inverseDirty = true;
|
||||||
|
|
||||||
|
_positionZ = positionZ;
|
||||||
|
|
||||||
|
// XXX BUG
|
||||||
|
// Global Z Order should based on the modelViewTransform
|
||||||
|
setGlobalZOrder(positionZ);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Node::setNormalizedPosition(const cocos2d::Point &position)
|
||||||
|
{
|
||||||
|
_normalizedPosition = position;
|
||||||
|
Size s = Director::getInstance()->getVisibleSize();
|
||||||
|
Point p;
|
||||||
|
p.x = s.width * position.x;
|
||||||
|
p.y = s.height * position.y;
|
||||||
|
setPosition(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
const Point& Node::getNormalizedPosition() const
|
||||||
|
{
|
||||||
|
return _normalizedPosition;
|
||||||
|
}
|
||||||
|
|
||||||
ssize_t Node::getChildrenCount() const
|
ssize_t Node::getChildrenCount() const
|
||||||
{
|
{
|
||||||
return _children.size();
|
return _children.size();
|
||||||
|
@ -1139,6 +1213,7 @@ const kmMat4& Node::getNodeToParentTransform() const
|
||||||
// Translate values
|
// Translate values
|
||||||
float x = _position.x;
|
float x = _position.x;
|
||||||
float y = _position.y;
|
float y = _position.y;
|
||||||
|
float z = _positionZ;
|
||||||
|
|
||||||
if (_ignoreAnchorPointForPosition)
|
if (_ignoreAnchorPointForPosition)
|
||||||
{
|
{
|
||||||
|
@ -1150,10 +1225,10 @@ const kmMat4& Node::getNodeToParentTransform() const
|
||||||
// Change rotation code to handle X and Y
|
// Change rotation code to handle X and Y
|
||||||
// If we skew with the exact same value for both x and y then we're simply just rotating
|
// If we skew with the exact same value for both x and y then we're simply just rotating
|
||||||
float cx = 1, sx = 0, cy = 1, sy = 0;
|
float cx = 1, sx = 0, cy = 1, sy = 0;
|
||||||
if (_rotationX || _rotationY)
|
if (_rotationZ_X || _rotationZ_Y)
|
||||||
{
|
{
|
||||||
float radiansX = -CC_DEGREES_TO_RADIANS(_rotationX);
|
float radiansX = -CC_DEGREES_TO_RADIANS(_rotationZ_X);
|
||||||
float radiansY = -CC_DEGREES_TO_RADIANS(_rotationY);
|
float radiansY = -CC_DEGREES_TO_RADIANS(_rotationZ_Y);
|
||||||
cx = cosf(radiansX);
|
cx = cosf(radiansX);
|
||||||
sx = sinf(radiansX);
|
sx = sinf(radiansX);
|
||||||
cy = cosf(radiansY);
|
cy = cosf(radiansY);
|
||||||
|
@ -1175,13 +1250,28 @@ const kmMat4& Node::getNodeToParentTransform() const
|
||||||
|
|
||||||
// Build Transform Matrix
|
// Build Transform Matrix
|
||||||
// Adjusted transform calculation for rotational skew
|
// Adjusted transform calculation for rotational skew
|
||||||
kmScalar mat[] = { cy * _scaleX, sy * _scaleX, 0, 0,
|
kmScalar mat[] = {
|
||||||
|
cy * _scaleX, sy * _scaleX, 0, 0,
|
||||||
-sx * _scaleY, cx * _scaleY, 0, 0,
|
-sx * _scaleY, cx * _scaleY, 0, 0,
|
||||||
0, 0, 1, 0,
|
0, 0, _scaleZ, 0,
|
||||||
x, y, 0, 1 };
|
x, y, z, 1 };
|
||||||
|
|
||||||
kmMat4Fill(&_transform, mat);
|
kmMat4Fill(&_transform, mat);
|
||||||
|
|
||||||
|
// XXX
|
||||||
|
// FIX ME: Expensive operation.
|
||||||
|
// FIX ME: It should be done together with the rotationZ
|
||||||
|
if(_rotationY) {
|
||||||
|
kmMat4 rotY;
|
||||||
|
kmMat4RotationY(&rotY,CC_DEGREES_TO_RADIANS(_rotationY));
|
||||||
|
kmMat4Multiply(&_transform, &_transform, &rotY);
|
||||||
|
}
|
||||||
|
if(_rotationX) {
|
||||||
|
kmMat4 rotX;
|
||||||
|
kmMat4RotationX(&rotX,CC_DEGREES_TO_RADIANS(_rotationX));
|
||||||
|
kmMat4Multiply(&_transform, &_transform, &rotX);
|
||||||
|
}
|
||||||
|
|
||||||
// XXX: Try to inline skew
|
// XXX: Try to inline skew
|
||||||
// If skew is needed, apply skew and then anchor point
|
// If skew is needed, apply skew and then anchor point
|
||||||
if (needsSkewMatrix)
|
if (needsSkewMatrix)
|
||||||
|
@ -1203,9 +1293,6 @@ const kmMat4& Node::getNodeToParentTransform() const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// vertex Z
|
|
||||||
_transform.mat[14] = _vertexZ;
|
|
||||||
|
|
||||||
if (_useAdditionalTransform)
|
if (_useAdditionalTransform)
|
||||||
{
|
{
|
||||||
kmMat4Multiply(&_transform, &_transform, &_additionalTransform);
|
kmMat4Multiply(&_transform, &_transform, &_additionalTransform);
|
||||||
|
@ -1348,7 +1435,7 @@ bool Node::updatePhysicsTransform()
|
||||||
if (_physicsBody != nullptr && _physicsBody->getWorld() != nullptr && !_physicsBody->isResting())
|
if (_physicsBody != nullptr && _physicsBody->getWorld() != nullptr && !_physicsBody->isResting())
|
||||||
{
|
{
|
||||||
_position = _physicsBody->getPosition();
|
_position = _physicsBody->getPosition();
|
||||||
_rotationX = _rotationY = _physicsBody->getRotation();
|
_rotationZ_X = _rotationZ_Y = _physicsBody->getRotation();
|
||||||
_transformDirty = _inverseDirty = true;
|
_transformDirty = _inverseDirty = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,6 @@
|
||||||
#include "CCGL.h"
|
#include "CCGL.h"
|
||||||
#include "ccGLStateCache.h"
|
#include "ccGLStateCache.h"
|
||||||
#include "CCGLProgram.h"
|
#include "CCGLProgram.h"
|
||||||
#include "kazmath/kazmath.h"
|
|
||||||
#include "CCScriptSupport.h"
|
#include "CCScriptSupport.h"
|
||||||
#include "CCProtocols.h"
|
#include "CCProtocols.h"
|
||||||
#include "CCEventDispatcher.h"
|
#include "CCEventDispatcher.h"
|
||||||
|
@ -214,29 +213,6 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual float getGlobalZOrder() const { return _globalZOrder; }
|
virtual float getGlobalZOrder() const { return _globalZOrder; }
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the 'z' value in the OpenGL Depth Buffer.
|
|
||||||
*
|
|
||||||
* The OpenGL depth buffer and depth testing are disabled by default. You need to turn them on
|
|
||||||
* in order to use this property correctly.
|
|
||||||
*
|
|
||||||
* `setVertexZ()` also sets the `setGlobalZValue()` with the vertexZ value.
|
|
||||||
*
|
|
||||||
* @see `setGlobalZValue()`
|
|
||||||
*
|
|
||||||
* @param vertexZ OpenGL Z vertex of this node.
|
|
||||||
*/
|
|
||||||
virtual void setVertexZ(float vertexZ);
|
|
||||||
/**
|
|
||||||
* Gets OpenGL Z vertex of this node.
|
|
||||||
*
|
|
||||||
* @see setVertexZ(float)
|
|
||||||
*
|
|
||||||
* @return OpenGL Z vertex of this node
|
|
||||||
*/
|
|
||||||
virtual float getVertexZ() const;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Changes the scale factor on X axis of this node
|
* Changes the scale factor on X axis of this node
|
||||||
*
|
*
|
||||||
|
@ -272,6 +248,23 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual float getScaleY() const;
|
virtual float getScaleY() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Changes the scale factor on Z axis of this node
|
||||||
|
*
|
||||||
|
* The Default value is 1.0 if you haven't changed it before.
|
||||||
|
*
|
||||||
|
* @param scaleY The scale factor on Y axis.
|
||||||
|
*/
|
||||||
|
virtual void setScaleZ(float scaleZ);
|
||||||
|
/**
|
||||||
|
* Returns the scale factor on Z axis of this node
|
||||||
|
*
|
||||||
|
* @see `setScaleZ(float)`
|
||||||
|
*
|
||||||
|
* @return The scale factor on Z axis.
|
||||||
|
*/
|
||||||
|
virtual float getScaleZ() const;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Changes both X and Y scale factor of the node.
|
* Changes both X and Y scale factor of the node.
|
||||||
|
@ -359,6 +352,41 @@ public:
|
||||||
virtual void setPositionY(float y);
|
virtual void setPositionY(float y);
|
||||||
virtual float getPositionY(void) const;
|
virtual float getPositionY(void) const;
|
||||||
|
|
||||||
|
virtual void setPosition3D(const Vertex3F& position);
|
||||||
|
virtual Vertex3F getPosition3D() const;
|
||||||
|
/**
|
||||||
|
* Sets the 'z' axis in the position. It is the OpenGL Z vertex value.
|
||||||
|
*
|
||||||
|
* The OpenGL depth buffer and depth testing are disabled by default. You need to turn them on
|
||||||
|
* in order to use this property correctly.
|
||||||
|
*
|
||||||
|
* `setPositionZ()` also sets the `setGlobalZValue()` with the positionZ as value.
|
||||||
|
*
|
||||||
|
* @see `setGlobalZValue()`
|
||||||
|
*
|
||||||
|
* @param vertexZ OpenGL Z vertex of this node.
|
||||||
|
*/
|
||||||
|
virtual void setPositionZ(float positionZ);
|
||||||
|
CC_DEPRECATED_ATTRIBUTE virtual void setVertexZ(float vertexZ) { setPositionZ(vertexZ); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets position Z axis of this node.
|
||||||
|
*
|
||||||
|
* @see setPositionZ(float)
|
||||||
|
*
|
||||||
|
* @return the position Z axis of this node.
|
||||||
|
*/
|
||||||
|
virtual float getPositionZ() const;
|
||||||
|
CC_DEPRECATED_ATTRIBUTE virtual float getVertexZ() const { return getPositionZ(); }
|
||||||
|
|
||||||
|
/** Sets the position using normalized coordinates.
|
||||||
|
- (0,0) means bottom,left corner
|
||||||
|
- (1,1) means top,right corner
|
||||||
|
- (0.5,0.5) means center
|
||||||
|
*/
|
||||||
|
virtual void setNormalizedPosition(const Point& position);
|
||||||
|
/** returns the normalized position */
|
||||||
|
const Point& getNormalizedPosition() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Changes the X skew angle of the node in degrees.
|
* Changes the X skew angle of the node in degrees.
|
||||||
|
@ -486,6 +514,8 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual float getRotation() const;
|
virtual float getRotation() const;
|
||||||
|
|
||||||
|
virtual void setRotation3D(const Vertex3F& rotation);
|
||||||
|
virtual Vertex3F getRotation3D() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew.
|
* Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew.
|
||||||
|
@ -495,16 +525,18 @@ public:
|
||||||
*
|
*
|
||||||
* @param rotationX The X rotation in degrees which performs a horizontal rotational skew.
|
* @param rotationX The X rotation in degrees which performs a horizontal rotational skew.
|
||||||
*/
|
*/
|
||||||
virtual void setRotationX(float rotationX);
|
virtual void setRotationSkewX(float rotationX);
|
||||||
|
CC_DEPRECATED_ATTRIBUTE virtual void setRotationX(float rotationX) { return setRotationSkewX(rotationX); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the X rotation (angle) of the node in degrees which performs a horizontal rotation skew.
|
* Gets the X rotation (angle) of the node in degrees which performs a horizontal rotation skew.
|
||||||
*
|
*
|
||||||
* @see `setRotationX(float)`
|
* @see `setRotationSkewX(float)`
|
||||||
*
|
*
|
||||||
* @return The X rotation in degrees.
|
* @return The X rotation in degrees.
|
||||||
*/
|
*/
|
||||||
virtual float getRotationX() const;
|
virtual float getRotationSkewX() const;
|
||||||
|
CC_DEPRECATED_ATTRIBUTE virtual float getRotationX() const { return getRotationSkewX(); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew.
|
* Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew.
|
||||||
|
@ -514,16 +546,18 @@ public:
|
||||||
*
|
*
|
||||||
* @param rotationY The Y rotation in degrees.
|
* @param rotationY The Y rotation in degrees.
|
||||||
*/
|
*/
|
||||||
virtual void setRotationY(float rotationY);
|
virtual void setRotationSkewY(float rotationY);
|
||||||
|
CC_DEPRECATED_ATTRIBUTE virtual void setRotationY(float rotationY) { return setRotationSkewY(rotationY); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew.
|
* Gets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew.
|
||||||
*
|
*
|
||||||
* @see `setRotationY(float)`
|
* @see `setRotationSkewY(float)`
|
||||||
*
|
*
|
||||||
* @return The Y rotation in degrees.
|
* @return The Y rotation in degrees.
|
||||||
*/
|
*/
|
||||||
virtual float getRotationY() const;
|
virtual float getRotationSkewY() const;
|
||||||
|
CC_DEPRECATED_ATTRIBUTE virtual float getRotationY() const { return getRotationSkewY(); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the arrival order when this node has a same ZOrder with other children.
|
* Sets the arrival order when this node has a same ZOrder with other children.
|
||||||
|
@ -1429,15 +1463,20 @@ protected:
|
||||||
virtual void disableCascadeColor();
|
virtual void disableCascadeColor();
|
||||||
virtual void updateColor() {}
|
virtual void updateColor() {}
|
||||||
|
|
||||||
|
float _rotationX; ///< rotation on the X-axis
|
||||||
|
float _rotationY; ///< rotation on the Y-axis
|
||||||
|
|
||||||
float _rotationX; ///< rotation angle on x-axis
|
// rotation Z is decomposed in 2 to simulate Skew for Flash animations
|
||||||
float _rotationY; ///< rotation angle on y-axis
|
float _rotationZ_X; ///< rotation angle on Z-axis, component X
|
||||||
|
float _rotationZ_Y; ///< rotation angle on Z-axis, component Y
|
||||||
|
|
||||||
float _scaleX; ///< scaling factor on x-axis
|
float _scaleX; ///< scaling factor on x-axis
|
||||||
float _scaleY; ///< scaling factor on y-axis
|
float _scaleY; ///< scaling factor on y-axis
|
||||||
|
float _scaleZ; ///< scaling factor on z-axis
|
||||||
|
|
||||||
Point _position; ///< position of the node
|
Point _position; ///< position of the node
|
||||||
|
float _positionZ; ///< OpenGL real Z position
|
||||||
|
Point _normalizedPosition; ///< position in normalized coordinates
|
||||||
|
|
||||||
float _skewX; ///< skew angle on x-axis
|
float _skewX; ///< skew angle on x-axis
|
||||||
float _skewY; ///< skew angle on y-axis
|
float _skewY; ///< skew angle on y-axis
|
||||||
|
@ -1460,8 +1499,6 @@ protected:
|
||||||
|
|
||||||
int _localZOrder; ///< Local order (relative to its siblings) used to sort the node
|
int _localZOrder; ///< Local order (relative to its siblings) used to sort the node
|
||||||
float _globalZOrder; ///< Global order used to sort the node
|
float _globalZOrder; ///< Global order used to sort the node
|
||||||
float _vertexZ; ///< OpenGL real Z vertex
|
|
||||||
|
|
||||||
|
|
||||||
Vector<Node*> _children; ///< array of children nodes
|
Vector<Node*> _children; ///< array of children nodes
|
||||||
Node *_parent; ///< weak reference to parent node
|
Node *_parent; ///< weak reference to parent node
|
||||||
|
|
|
@ -565,10 +565,10 @@ void Sprite::updateTransform(void)
|
||||||
float dx = x1 * cr - y2 * sr2 + x;
|
float dx = x1 * cr - y2 * sr2 + x;
|
||||||
float dy = x1 * sr + y2 * cr2 + y;
|
float dy = x1 * sr + y2 * cr2 + y;
|
||||||
|
|
||||||
_quad.bl.vertices = Vertex3F( RENDER_IN_SUBPIXEL(ax), RENDER_IN_SUBPIXEL(ay), _vertexZ );
|
_quad.bl.vertices = Vertex3F( RENDER_IN_SUBPIXEL(ax), RENDER_IN_SUBPIXEL(ay), _positionZ );
|
||||||
_quad.br.vertices = Vertex3F( RENDER_IN_SUBPIXEL(bx), RENDER_IN_SUBPIXEL(by), _vertexZ );
|
_quad.br.vertices = Vertex3F( RENDER_IN_SUBPIXEL(bx), RENDER_IN_SUBPIXEL(by), _positionZ );
|
||||||
_quad.tl.vertices = Vertex3F( RENDER_IN_SUBPIXEL(dx), RENDER_IN_SUBPIXEL(dy), _vertexZ );
|
_quad.tl.vertices = Vertex3F( RENDER_IN_SUBPIXEL(dx), RENDER_IN_SUBPIXEL(dy), _positionZ );
|
||||||
_quad.tr.vertices = Vertex3F( RENDER_IN_SUBPIXEL(cx), RENDER_IN_SUBPIXEL(cy), _vertexZ );
|
_quad.tr.vertices = Vertex3F( RENDER_IN_SUBPIXEL(cx), RENDER_IN_SUBPIXEL(cy), _positionZ );
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARMALADE CHANGE: ADDED CHECK FOR nullptr, TO PERMIT SPRITES WITH NO BATCH NODE / TEXTURE ATLAS
|
// MARMALADE CHANGE: ADDED CHECK FOR nullptr, TO PERMIT SPRITES WITH NO BATCH NODE / TEXTURE ATLAS
|
||||||
|
|
|
@ -188,10 +188,10 @@ void Skin::updateTransform()
|
||||||
float dx = x1 * cr - y2 * sr2 + x;
|
float dx = x1 * cr - y2 * sr2 + x;
|
||||||
float dy = x1 * sr + y2 * cr2 + y;
|
float dy = x1 * sr + y2 * cr2 + y;
|
||||||
|
|
||||||
SET_VERTEX3F( _quad.bl.vertices, RENDER_IN_SUBPIXEL(ax), RENDER_IN_SUBPIXEL(ay), _vertexZ );
|
SET_VERTEX3F( _quad.bl.vertices, RENDER_IN_SUBPIXEL(ax), RENDER_IN_SUBPIXEL(ay), _positionZ );
|
||||||
SET_VERTEX3F( _quad.br.vertices, RENDER_IN_SUBPIXEL(bx), RENDER_IN_SUBPIXEL(by), _vertexZ );
|
SET_VERTEX3F( _quad.br.vertices, RENDER_IN_SUBPIXEL(bx), RENDER_IN_SUBPIXEL(by), _positionZ );
|
||||||
SET_VERTEX3F( _quad.tl.vertices, RENDER_IN_SUBPIXEL(dx), RENDER_IN_SUBPIXEL(dy), _vertexZ );
|
SET_VERTEX3F( _quad.tl.vertices, RENDER_IN_SUBPIXEL(dx), RENDER_IN_SUBPIXEL(dy), _positionZ );
|
||||||
SET_VERTEX3F( _quad.tr.vertices, RENDER_IN_SUBPIXEL(cx), RENDER_IN_SUBPIXEL(cy), _vertexZ );
|
SET_VERTEX3F( _quad.tr.vertices, RENDER_IN_SUBPIXEL(cx), RENDER_IN_SUBPIXEL(cy), _positionZ );
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARMALADE CHANGE: ADDED CHECK FOR nullptr, TO PERMIT SPRITES WITH NO BATCH NODE / TEXTURE ATLAS
|
// MARMALADE CHANGE: ADDED CHECK FOR nullptr, TO PERMIT SPRITES WITH NO BATCH NODE / TEXTURE ATLAS
|
||||||
|
|
|
@ -33,9 +33,12 @@
|
||||||
|
|
||||||
static std::function<Layer*()> createFunctions[] = {
|
static std::function<Layer*()> createFunctions[] = {
|
||||||
|
|
||||||
|
CL(ActionRotateBy3D),
|
||||||
|
|
||||||
CL(ActionManual),
|
CL(ActionManual),
|
||||||
CL(ActionMove),
|
CL(ActionMove),
|
||||||
CL(ActionRotate),
|
CL(ActionRotate),
|
||||||
|
CL(ActionRotateBy3D),
|
||||||
CL(ActionScale),
|
CL(ActionScale),
|
||||||
CL(ActionSkew),
|
CL(ActionSkew),
|
||||||
CL(ActionRotationalSkew),
|
CL(ActionRotationalSkew),
|
||||||
|
@ -501,6 +504,31 @@ std::string ActionRotate::subtitle() const
|
||||||
return "RotateTo / RotateBy";
|
return "RotateTo / RotateBy";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// ActionRotateBy3D
|
||||||
|
//
|
||||||
|
//------------------------------------------------------------------
|
||||||
|
void ActionRotateBy3D::onEnter()
|
||||||
|
{
|
||||||
|
ActionsDemo::onEnter();
|
||||||
|
|
||||||
|
centerSprites(3);
|
||||||
|
|
||||||
|
auto actionBy1 = RotateBy::create(4, Vertex3F(360, 0, 0));
|
||||||
|
auto actionBy2 = RotateBy::create(4, Vertex3F(0, 360, 0));
|
||||||
|
auto actionBy3 = RotateBy::create(4 ,Vertex3F(0, 0, 360));
|
||||||
|
|
||||||
|
_tamara->runAction( Sequence::create(actionBy1, actionBy1->reverse(), nullptr));
|
||||||
|
_grossini->runAction( Sequence::create(actionBy2, actionBy2->reverse(), nullptr));
|
||||||
|
_kathia->runAction( Sequence::create(actionBy3, actionBy3->reverse(), nullptr));
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string ActionRotateBy3D::subtitle() const
|
||||||
|
{
|
||||||
|
return "RotateBy in 3D";
|
||||||
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// ActionJump
|
// ActionJump
|
||||||
|
|
|
@ -49,7 +49,7 @@ protected:
|
||||||
Sprite* _tamara;
|
Sprite* _tamara;
|
||||||
Sprite* _kathia;
|
Sprite* _kathia;
|
||||||
public:
|
public:
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual void onExit();
|
virtual void onExit();
|
||||||
|
|
||||||
void centerSprites(unsigned int numberOfSprites);
|
void centerSprites(unsigned int numberOfSprites);
|
||||||
|
@ -67,7 +67,7 @@ class ActionManual : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionManual);
|
CREATE_FUNC(ActionManual);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ class ActionMove : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionMove);
|
CREATE_FUNC(ActionMove);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ class ActionScale : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionScale);
|
CREATE_FUNC(ActionScale);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ class ActionSkew : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionSkew);
|
CREATE_FUNC(ActionSkew);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ class ActionRotationalSkew : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionRotationalSkew);
|
CREATE_FUNC(ActionRotationalSkew);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ class ActionRotationalSkewVSStandardSkew : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionRotationalSkewVSStandardSkew);
|
CREATE_FUNC(ActionRotationalSkewVSStandardSkew);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -121,7 +121,7 @@ class ActionSkewRotateScale : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionSkewRotateScale);
|
CREATE_FUNC(ActionSkewRotateScale);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -130,7 +130,16 @@ class ActionRotate : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionRotate);
|
CREATE_FUNC(ActionRotate);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
|
virtual std::string subtitle() const override;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ActionRotateBy3D : public ActionsDemo
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CREATE_FUNC(ActionRotateBy3D);
|
||||||
|
|
||||||
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -139,7 +148,7 @@ class ActionJump : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionJump);
|
CREATE_FUNC(ActionJump);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -148,7 +157,7 @@ class ActionBezier : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionBezier);
|
CREATE_FUNC(ActionBezier);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -157,7 +166,7 @@ class ActionBlink : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionBlink);
|
CREATE_FUNC(ActionBlink);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -166,7 +175,7 @@ class ActionFade : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionFade);
|
CREATE_FUNC(ActionFade);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -175,7 +184,7 @@ class ActionTint : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionTint);
|
CREATE_FUNC(ActionTint);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -184,7 +193,7 @@ class ActionAnimate : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionAnimate);
|
CREATE_FUNC(ActionAnimate);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual void onExit();
|
virtual void onExit();
|
||||||
virtual std::string title() const override;
|
virtual std::string title() const override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
|
@ -195,7 +204,7 @@ class ActionSequence : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionSequence);
|
CREATE_FUNC(ActionSequence);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -204,7 +213,7 @@ class ActionSequence2 : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionSequence2);
|
CREATE_FUNC(ActionSequence2);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
|
|
||||||
void callback1();
|
void callback1();
|
||||||
|
@ -217,7 +226,7 @@ class ActionSpawn : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionSpawn);
|
CREATE_FUNC(ActionSpawn);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -226,7 +235,7 @@ class ActionReverse : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionReverse);
|
CREATE_FUNC(ActionReverse);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -235,7 +244,7 @@ class ActionRepeat : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionRepeat);
|
CREATE_FUNC(ActionRepeat);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -244,7 +253,7 @@ class ActionDelayTime : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionDelayTime);
|
CREATE_FUNC(ActionDelayTime);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -253,7 +262,7 @@ class ActionReverseSequence : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionReverseSequence);
|
CREATE_FUNC(ActionReverseSequence);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -262,7 +271,7 @@ class ActionReverseSequence2 : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionReverseSequence2);
|
CREATE_FUNC(ActionReverseSequence2);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -271,7 +280,7 @@ class ActionOrbit : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionOrbit);
|
CREATE_FUNC(ActionOrbit);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -280,7 +289,7 @@ class ActionRemoveSelf : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionRemoveSelf);
|
CREATE_FUNC(ActionRemoveSelf);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -289,7 +298,7 @@ class ActionRepeatForever : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionRepeatForever);
|
CREATE_FUNC(ActionRepeatForever);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
|
|
||||||
void repeatForever(Node* pTarget);
|
void repeatForever(Node* pTarget);
|
||||||
|
@ -300,7 +309,7 @@ class ActionRotateToRepeat : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionRotateToRepeat);
|
CREATE_FUNC(ActionRotateToRepeat);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -309,7 +318,7 @@ class ActionRotateJerk : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionRotateJerk);
|
CREATE_FUNC(ActionRotateJerk);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -318,7 +327,7 @@ class ActionCallFuncN : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionCallFuncN);
|
CREATE_FUNC(ActionCallFuncN);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string title() const override;
|
virtual std::string title() const override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
void callback(Node* sender);
|
void callback(Node* sender);
|
||||||
|
@ -329,7 +338,7 @@ class ActionCallFuncND : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionCallFuncND);
|
CREATE_FUNC(ActionCallFuncND);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string title() const override;
|
virtual std::string title() const override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
void doRemoveFromParentAndCleanup(Node* sender, bool cleanup);
|
void doRemoveFromParentAndCleanup(Node* sender, bool cleanup);
|
||||||
|
@ -340,7 +349,7 @@ class ActionCallFuncO : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionCallFuncO);
|
CREATE_FUNC(ActionCallFuncO);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string title() const override;
|
virtual std::string title() const override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
void callback(Node* object, bool cleanup);
|
void callback(Node* object, bool cleanup);
|
||||||
|
@ -351,7 +360,7 @@ class ActionCallFunction : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionCallFunction);
|
CREATE_FUNC(ActionCallFunction);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
|
|
||||||
void callback1();
|
void callback1();
|
||||||
|
@ -365,7 +374,7 @@ class ActionFollow : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionFollow);
|
CREATE_FUNC(ActionFollow);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual void draw();
|
virtual void draw();
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
|
|
||||||
|
@ -381,7 +390,7 @@ class ActionTargeted : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionTargeted);
|
CREATE_FUNC(ActionTargeted);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string title() const override;
|
virtual std::string title() const override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
@ -391,7 +400,7 @@ class ActionTargetedReverse : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionTargetedReverse);
|
CREATE_FUNC(ActionTargetedReverse);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string title() const override;
|
virtual std::string title() const override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
@ -401,7 +410,7 @@ class ActionStacked : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(ActionStacked);
|
CREATE_FUNC(ActionStacked);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string title() const override;
|
virtual std::string title() const override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
virtual void addNewSpriteWithCoords(Point p);
|
virtual void addNewSpriteWithCoords(Point p);
|
||||||
|
@ -443,7 +452,7 @@ public:
|
||||||
|
|
||||||
virtual ~ActionCatmullRomStacked();
|
virtual ~ActionCatmullRomStacked();
|
||||||
virtual void draw();
|
virtual void draw();
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string title() const override;
|
virtual std::string title() const override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
protected:
|
protected:
|
||||||
|
@ -464,7 +473,7 @@ public:
|
||||||
|
|
||||||
virtual ~ActionCardinalSplineStacked();
|
virtual ~ActionCardinalSplineStacked();
|
||||||
virtual void draw();
|
virtual void draw();
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string title() const override;
|
virtual std::string title() const override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
private:
|
private:
|
||||||
|
@ -481,7 +490,7 @@ class Issue1305 : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(Issue1305);
|
CREATE_FUNC(Issue1305);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual void onExit();
|
virtual void onExit();
|
||||||
void log(Node* sender);
|
void log(Node* sender);
|
||||||
void addSprite(float dt);
|
void addSprite(float dt);
|
||||||
|
@ -496,7 +505,7 @@ class Issue1305_2 : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(Issue1305_2);
|
CREATE_FUNC(Issue1305_2);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
void printLog1();
|
void printLog1();
|
||||||
void printLog2();
|
void printLog2();
|
||||||
void printLog3();
|
void printLog3();
|
||||||
|
@ -510,7 +519,7 @@ class Issue1288 : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(Issue1288);
|
CREATE_FUNC(Issue1288);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string title() const override;
|
virtual std::string title() const override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
@ -520,7 +529,7 @@ class Issue1288_2 : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(Issue1288_2);
|
CREATE_FUNC(Issue1288_2);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string title() const override;
|
virtual std::string title() const override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
};
|
};
|
||||||
|
@ -530,7 +539,7 @@ class Issue1327 : public ActionsDemo
|
||||||
public:
|
public:
|
||||||
CREATE_FUNC(Issue1327);
|
CREATE_FUNC(Issue1327);
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
virtual std::string title() const override;
|
virtual std::string title() const override;
|
||||||
void logSprRotation(Sprite* sender);
|
void logSprRotation(Sprite* sender);
|
||||||
|
@ -543,7 +552,7 @@ public:
|
||||||
|
|
||||||
void incrementInteger();
|
void incrementInteger();
|
||||||
void incrementIntegerCallback(void* data);
|
void incrementIntegerCallback(void* data);
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
virtual std::string title() const override;
|
virtual std::string title() const override;
|
||||||
private:
|
private:
|
||||||
|
@ -557,7 +566,7 @@ public:
|
||||||
|
|
||||||
~ActionCatmullRom();
|
~ActionCatmullRom();
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual void draw();
|
virtual void draw();
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
virtual std::string title() const override;
|
virtual std::string title() const override;
|
||||||
|
@ -578,7 +587,7 @@ public:
|
||||||
|
|
||||||
~ActionCardinalSpline();
|
~ActionCardinalSpline();
|
||||||
|
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual void draw();
|
virtual void draw();
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
virtual std::string title() const override;
|
virtual std::string title() const override;
|
||||||
|
@ -598,7 +607,7 @@ public:
|
||||||
|
|
||||||
PauseResumeActions();
|
PauseResumeActions();
|
||||||
virtual ~PauseResumeActions();
|
virtual ~PauseResumeActions();
|
||||||
virtual void onEnter();
|
virtual void onEnter() override;
|
||||||
virtual std::string subtitle() const override;
|
virtual std::string subtitle() const override;
|
||||||
virtual std::string title() const override;
|
virtual std::string title() const override;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue