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 EaseSineInOut::update(float time) { m_pInner->update(-0.5f * (kdCosf(KD_PI_F * time) - 1)); }
void EaseSineIn::update(float time) { m_pInner->update(-1 * kdCosf(time * KD_PI_2_F) + 1); }
KDvoid CCEaseSineInOut::update ( KDfloat fTime ) { m_pInner->update ( -0.5f * ( kdCosf ( KD_PI_F * fTime ) - 1 ) ); }
KDvoid CCEaseSineIn::update ( KDfloat fTime ) { m_pInner->update ( -1 * kdCosf ( fTime * KD_PI_2_F ) + 1 ); }