void EaseElasticInOut::update(float time) { float newT = 0; if (time == 0 || time == 1) { newT = time; } else { time = time * 2; if ( m_fPeriod == 0) { m_fPeriod = 0.3f * 1.5f; } float s = m_fPeriod / 4; time = time - 1; if (time < 0) { newT = -0.5f * kdPowf(2, 10 * time) * kdSinf((time -s) * KD_2PI_F / m_fPeriod); } else { newT = kdPowf(2, -10 * time) * kdSinf((time - s) * KD_2PI_F / m_fPeriod) * 0.5f + 1; } } m_pInner->update(newT); }
KDvoid CCEaseElasticInOut::update ( KDfloat fTime ) { KDfloat fNewTime = 0; if ( fTime == 0 || fTime == 1 ) { fNewTime = fTime; } else { fTime = fTime * 2; if ( !m_fPeriod ) { m_fPeriod = 0.3f * 1.5f; } KDfloat fS = m_fPeriod / 4; fTime = fTime - 1; if ( fTime < 0 ) { fNewTime = -0.5f * kdPowf ( 2, 10 * fTime ) * kdSinf ( ( fTime - fS ) * KD_2PI_F / m_fPeriod ); } else { fNewTime = kdPowf ( 2, -10 * fTime ) * kdSinf ( ( fTime - fS ) * KD_2PI_F / m_fPeriod ) * 0.5f + 1; } } m_pInner->update ( fNewTime ); }
KDvoid RenderTextureTargetNode::update ( KDfloat fDelta ) { static KDfloat fTime = 0; KDfloat r = 80; m_pSprite1->setPosition ( ccp ( kdCosf ( fTime * 2 ) * r, kdSinf ( fTime * 2 ) * r ) ); m_pSprite2->setPosition ( ccp ( kdSinf ( fTime * 2 ) * r, kdCosf ( fTime * 2 ) * r ) ); fTime += fDelta; }
void mtx4_rotatey(float* dm, float deg) { float rad; float sval; float cval; if(!dm){ return; } while(deg >= 360.0f){ deg -= 360.0f; } while(deg < 0){ deg += 360.0f; } rad = deg * (float)(KD_PI_F / 180.0); sval = kdSinf(rad); cval = kdCosf(rad); mtx4_identity(dm); dm[0] = cval; dm[2] = -sval; dm[8] = sval; dm[10] = cval; }
void PhysicsDebugDraw::drawShape(PhysicsShape& shape) { for (auto it = shape.m_pInfo->getShapes().begin(); it != shape.m_pInfo->getShapes().end(); ++it) { cpShape *subShape = *it; switch ((*it)->klass->type) { case CP_CIRCLE_SHAPE: { float radius = PhysicsHelper::cpfloat2float(cpCircleShapeGetRadius(subShape)); Point centre = PhysicsHelper::cpv2point(cpBodyGetPos(cpShapeGetBody(subShape))) + PhysicsHelper::cpv2point(cpCircleShapeGetOffset(subShape)); static const int CIRCLE_SEG_NUM = 12; Point seg[CIRCLE_SEG_NUM] = {}; for (int i = 0; i < CIRCLE_SEG_NUM; ++i) { float angle = (float)i * KD_PI_F / (float)CIRCLE_SEG_NUM * 2.0f; Point d(radius * kdCosf(angle), radius * kdSinf(angle)); seg[i] = centre + d; } m_pDrawNode->drawPolygon(seg, CIRCLE_SEG_NUM, Color4F(1.0f, 0.0f, 0.0f, 0.3f), 1, Color4F(1, 0, 0, 1)); break; } case CP_SEGMENT_SHAPE: { cpSegmentShape *seg = (cpSegmentShape *)subShape; m_pDrawNode->drawSegment(PhysicsHelper::cpv2point(seg->ta), PhysicsHelper::cpv2point(seg->tb), PhysicsHelper::cpfloat2float(seg->r==0 ? 1 : seg->r), Color4F(1, 0, 0, 1)); break; } case CP_POLY_SHAPE: { cpPolyShape* poly = (cpPolyShape*)subShape; int num = poly->numVerts; Point* seg = new Point[num]; PhysicsHelper::cpvs2points(poly->tVerts, seg, num); m_pDrawNode->drawPolygon(seg, num, Color4F(1.0f, 0.0f, 0.0f, 0.3f), 1.0f, Color4F(1.0f, 0.0f, 0.0f, 1.0f)); delete[] seg; break; } default: break; } } }
void TransformHelp::nodeToMatrix(const BaseData &node, AffineTransform &matrix) { if (node.m_fSkewX == -node.m_fSkewY) { double sine = kdSinf(node.m_fSkewX); double cosine = kdCosf(node.m_fSkewX); matrix.a = node.m_fScaleX * cosine; matrix.b = node.m_fScaleX * -sine; matrix.c = node.m_fScaleY * sine; matrix.d = node.m_fScaleY * cosine; } else { matrix.a = node.m_fScaleX * kdCosf(node.m_fSkewY); matrix.b = node.m_fScaleX * kdSinf(node.m_fSkewY); matrix.c = node.m_fScaleY * kdSinf(node.m_fSkewX); matrix.d = node.m_fScaleY * kdCosf(node.m_fSkewX); } matrix.tx = node.x; matrix.ty = node.y; }
void EaseElasticOut::update(float time) { float newT = 0; if (time == 0 || time == 1) { newT = time; } else { float s = m_fPeriod / 4; newT = kdPowf(2, -10 * time) * kdSinf((time - s) * KD_2PI_F / m_fPeriod) + 1; } m_pInner->update(newT); }
KDvoid CCEaseElasticOut::update ( KDfloat fTime ) { KDfloat fNewTime = 0; if ( fTime == 0 || fTime == 1 ) { fNewTime = fTime; } else { KDfloat fS = m_fPeriod / 4; fNewTime = kdPowf ( 2, -10 * fTime ) * kdSinf ( ( fTime - fS ) * KD_2PI_F / m_fPeriod ) + 1; } m_pInner->update ( fNewTime ); }
void EaseSineOut::update(float time) { m_pInner->update(kdSinf(time * KD_PI_2_F)); }
KDvoid CCEaseSineOut::update ( KDfloat fTime ) { m_pInner->update ( kdSinf ( fTime * KD_PI_2_F ) ); }