2016-07-12 2 views
0

을 애니메이션을 재생하는 방법 나는 또한 수평이 애니메이션 플립에 내가 원하는 이제이 코드 세그먼트C++는 - 반대 방향으로 Cocos2DX

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)); 

을있어이

enter image description here

처럼 PNG로있어 . 뭔가 다른 PNG 파일을 생성 할 수 없음이

enter image description here

처럼 보이는, C++ 코드에서이 할 수있는 방법이 있나요?

답변

1

애니메이션 * 애니메이션 = 애니메이션 :: createWithSpriteFrames (animFrames 시간);

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

sprite-> setFlipX

1

이미지를 가로로 뒤집는 것은 이미지의 x 축을 뺀 것입니다. Cocos2DX에 익숙하지 않지만 이미지의 x 배율에 -1을 곱하면 가로로 뒤집을 수 있습니다.

answer 스케일링와 함께 당신을 도울 수 있습니다

0

내가 플립 기능은 반전 할 개체의 회전을 처리하면 완전히 확실하지 않다 (참). 나는 그것이 단지 텍스처의 방향을 바꿀 뿐이라고 믿는다. 캐릭터가 게임 세계에서 직면하고있는 방향을 계산해야하는 경우 길 아래에서 상황이 좀 더 복잡해집니다.

스프라이트 전체를 Y 축에서 회전 할 수 있습니다. 그렇게함으로써, 모든 것이 올바른 방향으로 향하게하고 텍스처만이 아닌지 확인하게 될 것입니다. 다음 코드는 스프라이트 전체를 회전시켜 동일한 시각을 제공합니다.

sprite->setRotation3D(Vec3(0, 180, 0)); 
관련 문제