본문 바로가기

GameProgramming

[cocos2d-x] Scale + Ease auto sprite = Sprite::create("cake_1.png"); sprite->setScale(0); sprite->runAction( EaseExponentialOut::create(ScaleTo::create(1.0, 2.0))); addChild(sprite); Scale Scale + EaseExponentialOut Scale + EaseCircleActionOut Scale + EaseBackOut Scale + EaseElasticOut Scale + EaseBounceOut Scale + EaseSineOut Scale + EaseQuadraticActionOut 더보기
[cocos2d-x] 입력을 요구하는 오브젝트 만들기 사용자의 입력을 기다리는 상태(예를들어 Press any key to continue 같은...)의 오브젝트들은 화면상에서 약간 강조되어야 할 필요가 있습니다.이러한 오브젝트(또는 텍스트)에 약간 동적인 효과를 주면 유저의 시선을 끌 수 있고 입력을 재촉하는 효과 또한 낼수 있습니다. text->runAction( RepeatForever::create( Sequence::create( MoveBy::create(0.05, Vec2(-2, -1)), MoveBy::create(0.07, Vec2(2, 1)), nullptr))); 위의 샘플과 코드는 유저의 인풋을 재촉하기 위해서 텍스트 오브젝트를 매우 빠른 속도로 진동시키는 효과를 주는 예제입니다. 진동하는 주기가 길어지면(애니메이션 시간이 길어지면) .. 더보기
[cocos2d-x] 몬스터에 숨쉬는 효과 주기 게임 화면을 구성할 때, 몇몇 오브젝트들은 가만히 세워놓기에는 너무 심심합니다. 그래서 IDLE 상태에서의 애니메이션을 넣는 방법을 주로 사용하는데, 이는 스프라이트 애니메이션을 이용한 방법이 가장 일반적이지만, 당연히 제작 코스트가 올라가게 되고, 저같이 리소스를 대부분 줏어다 프로토타이핑 하는 입장에서는 불가능한 부분이 많습니다...아래에서는 단일 이미지를 이용해 오브젝트의 IDLE 상태를 조금은 심심하지 않게 만드는 법에 대해서 알아봅니다. 아래 예제 코드의 파라미터들을 적당히 조절하여야지, 그림에 맞는 최상의 효과를 볼 수 있습니다. Skew 이용하기SKEW를 이용하면 로테이션으로는 할 수 없는 특이한 효과들을 줄 수 있습니다. 예를들어 아래의 코드에서는 X에 SKEW를 적용하여 몬스터의 머리 부.. 더보기
[cocos2d-x] 통통 튀는 햅틱 효과 주기 액션을 몇가지 섞어서, 사용자가 오브젝트를 터치했을 때 반응을 주는 반응 이펙트를 만들어 낼 수 있다. // ------- 통통 튀는 효과 ------ runAction( EaseElasticOut::create( Sequence::create( ScaleTo::create(0.4, 1.22), ScaleTo::create(0.2, 1.00), nullptr))); // ------ 오버레이 효과 ------ auto overlay = Sprite::createWithSpriteFrameName(SPRITE_PATH); // 밝게 빛나는 효과를 주기 위해 블렌딩을 설정한다. BlendFunc add; add.dst = GL_ONE; add.src = GL_SRC_ALPHA; overlay->setBlen.. 더보기
[cocos2d-x] setAliasTexParameters setAntiAliasTexParameters- GL_TEXTURE_MIN_FILTER = GL_LINEAR - GL_TEXTURE_MAG_FILTER = GL_LINEAR * 늘리고자 하는 텍스쳐가 사진일때 setAliasTexParameters - GL_TEXTURE_MIN_FILTER = GL_NEAREST - GL_TEXTURE_MAG_FILTER = GL_NEAREST * 늘리고자 하는 텍스쳐가 도트일때 더보기
페이드 인 효과 일반적인 페이드 인 효과 bg->runAction(FadeIn::create(6)); 계단식 페이드 인 효과 (옛날 게임 느낌?) bg->runAction( Repeat::create( Sequence::create( CallFunc::create([=]() { bg->setOpacity( bg->getOpacity() + 10); }), DelayTime::create(0.15), nullptr) , 25)); 더보기