Apprenons quelques sports plus compliqués aujourd'hui.
Par exemple, si nous voulons sortir d'un mouvement courbe lisse, nous pouvons utiliser BezierTo et BezierBy.
Ce Bézier est une courbe de Bézier, vous pouvez rechercher des connaissances de base.
ccBezierConfig a 3 paramètres,
Vec2 controlPoint_1: point courbe 1 (point courbe 1)
Vec2 controlPoint_2: point courbe 2 (point courbe 2)
Vec2 endPosition: position finale
Que signifient les points de courbe 1 et 2? Regardez le diagramme explicatif de l'Encyclopédie Baidu pour comprendre.
Si vous voulez toujours comprendre en profondeur pourquoi cette courbe est si courbe, alors étudiez-la attentivement. Calcul de la formule de la courbe de Bézier (je ne comprends pas)
J'ai testé deux cas, les coordonnées de début et de fin sont identiques, respectivement (200, 400), (600, 400). Mais les deux points de la courbe sont différents, nous pouvons regarder l'effet.
Testez le code et l'effet pour la première fois:
auto sprite1 = Sprite::create("s1.png");
sprite1->setPosition(Vec2(200, 400));
this->addChild(sprite1);
ccBezierConfig bz;
bz.controlPoint_1 = Vec2(300, 500);
bz.controlPoint_2 = Vec2(500, 300);
bz.endPosition = Vec2(600, 400);
auto move = BezierTo::create(3, bz);
Le deuxième code et effet de test:
auto sprite1 = Sprite::create("s1.png");
sprite1->setPosition(Vec2(200, 400));
this->addChild(sprite1);
ccBezierConfig bz;
bz.controlPoint_1 = Vec2(200, 600);
bz.controlPoint_2 = Vec2(600, 200);
bz.endPosition = Vec2(600, 400);
auto move = BezierTo::create(3, bz);
Ce qui précède est BezierTo, l'effet de BezierBy est complètement différent, car BezierBy se déplace en fonction de la position actuelle du sprite. Je ne donnerai pas d'exemple.