티스토리 뷰

기본 적으로 알아 두시면 좋은 자료형 및 기본 함수들 입니다.




1. 자료형


여기서 나오는 자료형들은 모두 앞의 예제들에서 한번씩 사용했던 자료형들 입니다.


- Point( x, y ) : 포인트 값 그러니까 좌표 값을 의미 합니다.

- Size( width, height ) : 가로, 세로 길이를 의미 합니다.

- Rect( x, y,  width, height ) : 이미지 내부의 x, y 좌표와 좌표로부터의 가로, 세로를 의미 합니다. 


위의 자료형들을 이전에 사용하였던 예제와 비교 하여 보자면

bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    auto spr = Sprite::create("money.png",Rect(0, 0, 100, 100));
    spr->setAnchorPoint(Point(0.5,0.5));//앵커포인터 지정
    spr->setPosition(Point(300,200));//포지션 지정
    this->addChild(spr);
    
    
    return true;
}

위의 예제를 아래와 같이 고칠 수 있습니다.

bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    
    Rect imgMask = Rect(0, 0, 100, 100 );
    Point posAnchor = Point(0,0);
    Point posImg = Point(200, 300);

    auto spr = Sprite::create("present.png",imgMask);
    spr->setAnchorPoint(posAnchor);//앵커포인터 지정
    spr->setPosition(posImg);//포지션 지정
    this->addChild(spr);
    
    
    return true;
}

아래는 결과 입니다.




예제에 사용된 이미지





2. 기본 메소드


기본 메소드는 스프라이트, 텍스트, 라벨 등에 공통적으로 사용되는 메소드들을 말합니다.


- setScale(), setScaleX(), setScaleY() : 객체를 배율로 확대 혹은 축소 합니다. 

setScale(2.0) - 2배 확대 setScale(0.5) 50% 축소


- setRotation(), setRotationX(), setRotationY() : 객체를 회전하는 메소드 입니다. X, Y 는 회전하는 축을 의미 하며 360이상 의 값을 입력할 경우 한바퀴 값 만큼 회전후의 값이 입력됨니다.

setRotation(90) : 시계방향 90도 회전


- setFlippedX(), setFlippedY() : 객체를 반전하는 메소드 입니다 X, Y 는 각각의 축을 의미 합니다.

setFlippedX(true) : X 축 기준으로 회전


- setOpacity() : 객체의 투명도를 0~255로 나타 냅니다. 투명도를 조절하는 것임으로 0 이 되면 투명화가 되어 나타나지 않습니다.

setOpacity(0) : 나타나지 않음

setOpacity(255) : 100% 로 객체가 보임

setOpacity(180) : 살짝 투명화가 진행된 상태로 보임


- setVisible() : 객체를 보이게 하거나 안보이게 합니다. Opacity 와 다르게 보이고 안보이고를 정하는 것이기 때문에 setVisible(false) 로 지정할경우 setOpacity 의 값과 상관없이 보이지 않게 됩니다.

setVisible(true) : 객체가 보임


아래는 대충 예제로 만들어 보았습니다.

bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    
    Size windowSize = Director::getInstance()->getWinSize();
    
    Sprite *funchild = Sprite::create("funchild.png");
    Sprite *funchild_2 = Sprite::create("funchild.png");
    Sprite *funtree = Sprite::create("funtree.png");
    Sprite *funtree_2 = Sprite::create("funtree.png");
    Sprite *funface = Sprite::create("funface.png");
    Sprite *funface_2 = Sprite::create("funface.png");
    
    funchild->setOpacity(180);
    funchild->setPosition(windowSize.width/2,300);
    this->addChild(funchild);
    
    funtree->setRotation(90);
    funtree->setPosition(windowSize.width/3,500);
    this->addChild(funtree);
    
    funface->setScale(100);
    funface->setPosition(windowSize.width/5,windowSize.width/6);
    this->addChild(funface);
    
    funchild_2->setScale(2,0.5);
    funchild_2->setAnchorPoint(Point::ZERO);
    funchild_2->setPosition(0,0);
    this->addChild(funchild_2);
    
    funtree_2->setFlippedX(true);
    funtree_2->setPosition(windowSize.width/8,windowSize.height/2);
    this->addChild(funtree_2);
    
    funface_2->setFlippedX(true);
    funface_2->setAnchorPoint(Point(1,1));
    funface_2->setPosition(windowSize.width,windowSize.height);
    this->addChild(funface_2);
    
    
    return true;
}

대충 만들었더니... 대충 날아다니는군요.






아래는 예제에서 사용되었던 이미지들 입니다. ( 구글에서 대충 검색해서 가지고옴... )





즐거운 하루 되시기 바랍니다. 


공유하기 링크
댓글