프로젝트에 추가 후
사용 방법
Shake *shake = Shake::actionWithDuration(0.5f, 30);
this->runAction(shake);
이상입니다.
참고 : http://singleton.tistory.com/375
프로젝트에 추가 후
사용 방법
Shake *shake = Shake::actionWithDuration(0.5f, 30);
this->runAction(shake);
이상입니다.
참고 : http://singleton.tistory.com/375
버젼 : cocos2d-x 3.1
cocostudio 를 사용 하여 AnimationEditor 작업 후 파일을 Export 하면 3개의 파일이 생성 되는 것 까지는 생략 하겠습니다.
Size visibleSize = Director::getInstance()->getVisibleSize();
// 파일을 먼저 로딩 후 //
cocostudio::ArmatureDataManager::getInstance()->addArmatureFileInfo("test.ExportJson");
// 애니메이션 생성 한후 //
Armature *armature = cocostudio::Armature::create("test");
armature->setPosition(Vec2(visibleSize.width / 2 , visibleSize.height / 2));
armature->setScale(5.0f);
// 몇번째 애니메이션을 실행 할것인지 인덱스로 해도 되고 아니면 애니메이션 명으로 실행 해도 됨
// armature->getAnimation()->play("test");
armature->getAnimation()->playWithIndex(1);
// 애니메이션 속도 조절 가능 RPG 게임 2배속 기능 참고
armature->getAnimation()->setSpeedScale(0.1f);
//애니메이션 시작 중간 끝났을때 콜백 받을수 있음
armature->getAnimation()->setMovementEventCallFunc(CC_CALLBACK_0(LobbyScene::animationEvent, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3));
//각 프레임당 이벤트 메서드가 있을시 콜백 받음
armature->getAnimation()->setFrameEventCallFunc(CC_CALLBACK_0(LobbyScene::onFrameEvent, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4));
this->addChild(armature);
======= call back func ======
void ********::onFrameEvent(Bone *bone, const std::string& evt, int originFrameIndex, int currentFrameIndex)
{
CCLOG("(%s) emit a frame event (%s) at frame index (%d).", bone->getName().c_str(), evt.c_str(), currentFrameIndex);
if((__String::createWithFormat("%s",evt.c_str()))->isEqual(StringMake("fire"))) {
log("Event Start");
}
if(strcmp(evt.c_str(),"event")) {
log("Event Start");
}
}
void ************::animationEvent(Armature *armature, MovementEventType movementType, const std::string& movementID)
{
if (movementType == LOOP_COMPLETE)
{
if (movementID == "test1")
{
log("test complete");
}
}
}
이상입니다.~
-------------------------
또한 지금 작업 하고 있는 프로젝트에서 따로 h파일을 하나 생성 하여 cocos2d관련 h파일을 다 포함 하여 작업을 진행 중입니다.
test.h
#include "cocos2d.h"
#include "cocostudio/CocoStudio.h"
#if(CC_PLATFORM_ANDROID == CC_TARGET_PLATFORM)
#include "extensions/cocos-ext.h"
#elif(CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
#include "cocos-ext.h"
#endif
using namespace cocos2d;
using namespace std;
using namespace extension;
using namespace cocostudio;
--------------------------
이 상태에서 각 코코스 및 코코스 스튜디오를 작업 하실때 #include "test.h" 만 추가 하셔서 사용 하시면 됩니다.
EGLView::getInstance()->setDesignResolutionSize(width , height, policy)
EXACT_FIT
- 비율을 고려하지 않고 디자인된 해상도를 화면에 맞추어 그린다.비율에 의한 왜곡이 발생할 수 있다.게임 화면이 늘어 나거나
압축되어 보일수 있다.
NO_BORDER
- 비율을 지키며 디자인된 해상도를 화면에 가득차게 그린다.왜곡은 발생하지 않으나 게임 화면의 일부가 단말기 화면 밖으로 잘려 보일 수 있다.
SHOW_ALL
- 비율을 지키며 디자인된 해상도를 화면에 맞추어 그려준다.디자인된 리소스와 다른 비율의 화면에서는 화면의 양쪽 사이드
에 검은색의 Border가 등장하게 된다.
FIXED_HEIGHT
- 디자인된 해상도의 높이에 맞추어 단말기 화면의 비율에 따라 높이를 결정한다. 왜곡은 발생하지 않으나 비율이 고정되지 않 기 때문에 비율에 상관없이 정상적으로 동작하는 것을 개발자가 보장해 주어야 한다.
FIXED_WIDTH
- 디자인된 해상도의 넓이에 맞추어 단말기 화면의 비율에 따라 넓이를 결정한다. 이하 FIXED_HEIGHT와 동일