Lab

Cocos2d-x v3:スプライトの位置を指定

 Tag :  Published : 2014-5-21

Pocket

setPosition、setPositionX、setPositionY、setPositionZを使用します。
スプライトを表示する位置を指定します。
> Ver2.x : 『スプライトの位置を指定』はこちら

表示位置を指定する(setPosition)

画面の中央にスプライトを表示します。

    //画面のサイズを取得
    Size visibleSize = Director::getInstance()->getVisibleSize();

    //スプライトを作成
    auto sprite = Sprite::create("1.png");

    //ここで表示位置を横中央(visibleSize.width/2)、縦中央(visibleSize.height/2)に指定。
    sprite->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2));
    
    //表示!
    this->addChild(sprite);
    

x方向の表示位置を指定する(setPositionX)

画面の横中央にスプライトを表示します。
縦は何もしないので、デフォルトの0になります。

    //画面のサイズを取得
    Size visibleSize = Director::getInstance()->getVisibleSize();

    //スプライトを作成
    auto sprite = Sprite::create("1.png");

    //ここで表示位置を横中央(visibleSize.width/2)に指定。
    sprite->setPositionX(visibleSize.width/2);
    
    //表示!
    this->addChild(sprite);
    

y方向の表示位置を指定する(setPositionY)

画面の縦中央にスプライトを表示します。
横は何もしないので、デフォルトの0になります。

    //画面のサイズを取得
    Size visibleSize = Director::getInstance()->getVisibleSize();

    //スプライトを作成
    auto sprite = Sprite::create("1.png");

    //ここで表示位置を縦中央(visibleSize.height/2)に指定。
    sprite->setPositionY(visibleSize.height/2);
    
    //表示!
    this->addChild(sprite);
    

z方向の表示位置を指定する(setPositionZ)

画面の手前にスプライトを表示します。
比較用に、まず2つのスプライトを重ねて表示してみます。

cocos2d-x v3 z方向の表示位置を指定
    //画面のサイズを取得
    Size visibleSize = Director::getInstance()->getVisibleSize();

    //スプライト1を画面中央に作成して表示
    auto sprite1 = Sprite::create("1.png");
    sprite1->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2));
    this->addChild(sprite1);

    //スプライト2を1より少しずらした位置に作成
    auto sprite2 = Sprite::create("2.png");
    sprite2->setPosition(Vec2(visibleSize.width/2+100, visibleSize.height/2+100));
    this->addChild(sprite2);
    

次にスプライト1のz座標を変更してみます。
上記のコードの最後に以下を追加してみると。。

    //スプライト1のz座標を150に
    sprite1->setPositionZ(150);
    
cocos2d-x v3 z方向の表示位置を指定

スプライト1が手前に出る、だけでなく、パースが効いて大きくなるのですね。へー。

pageTop