2016-07-12 16 views
0

bekam ich ein png wie diesesC++ - Wie Animation in entgegengesetzter Richtung spielen Cocos2DX

enter image description here

Ich habe auch dieses Segment Code

SpriteFrameCache::getInstance()->addSpriteFramesWithFile("walk.plist", "walk.png"); 
Vector<SpriteFrame*> animFrames; 
animFrames.reserve(8); 
char spriteFrameByName[MAX_WORD] = { 0 }; 

for (int index = 1; index <= 8; index++) 
{ 

    sprintf(spriteFrameByName, "%d.png", index); 

    auto frame = SpriteFrameCache::getInstance()->getSpriteFrameByName(spriteFrameByName); 

    animFrames.pushBack(frame); 
} 
Animation* animation = Animation::createWithSpriteFrames(animFrames, time); 
sprite->runAction(Animate::create(animation)); 

Jetzt möchte ich horizontal diese Animation Flip . So etwas wie dieses

enter image description here

sieht nicht eine andere PNG-Datei zu erstellen, ist es eine Möglichkeit, dies in C++ Code?

Antwort

1

-Animation * Animation = Animations :: createWithSpriteFrames (animFrames, Zeit);

sprite-> runAction (Animation :: create (animation));

sprite-> setFlipX (true)

1

Das horizontale Spiegeln eines Bildes entspricht der Skalierung der X-Achse dieses Bildes minus 1. Ich kenne Cocos2DX nicht, aber wenn ich den x-Maßstab Ihres Bildes mit -1 multipliziere, wird es horizontal für Sie gedreht.

Diese answer können Sie auch mit Skalierung helfen:

0

Ich bin nicht ganz sicher, ob Flip-Funktion, die Drehung des Objekt-Handles Sie spiegeln möchten. Ich glaube, dass es nur die Richtung der Textur ändert. Das kann dazu führen, dass die Dinge ein bisschen komplexer werden, wenn du jemals berechnen musst, in welche Richtung dein Charakter in deiner Spielwelt blickt.

Sie können das gesamte Sprite auf der Y-Achse drehen. Dadurch wird sichergestellt, dass alles in die richtige Richtung zeigt und nicht nur die Textur. Der folgende Code bietet dasselbe visuelle Erscheinungsbild, indem das gesamte Sprite gedreht wird.

sprite->setRotation3D(Vec3(0, 180, 0));