Cocos2d-x之Parallax視差

Parallax Node(視差節點)是一個特殊的節點類型。 它模擬視差滾動條。視差簡單地說,你可以認爲視差節點是一種特殊的效果,當你從不同的位置看物體時,它的位置或方向看起來是不同的。 包括通過取景器和相機鏡頭觀看。ParallaxNode 對象可以按順序移動,也可以通過鼠標、觸摸、加速計或鍵盤事件手動移動。
視差節點比常規節點要複雜一點。 因爲它們需要使用多個節點才能工作。 ParallaxNode(視差節點)本身無法工作。至少需要兩個其他節點對象才能完成ParallaxNode(視差節點)。 通常,在真正的Cocos2d-x方式中,視差節點很容易創建:

// create ParallaxNode
auto paraNode = ParallaxNode::create();

由於您需要多個節點對象,因此它們也很容易添加:

// create ParallaxNode
auto paraNode = ParallaxNode::create();

// background image is moved at a ratio of 0.4x, 0.5y
paraNode->addChild(background, -1, Vec2(0.4f,0.5f), Vec2::ZERO);

// tiles are moved at a ratio of 2.2x, 1.0y
paraNode->addChild(middle_layer, 1, Vec2(2.2f,1.0f), Vec2(0,-200) );

// top image is moved at a ratio of 3.0x, 2.5y
paraNode->addChild(top_layer, 2, Vec2(3.0f,2.5f), Vec2(200,800) );

添加的每個節點對象都被賦予一個唯一的z順序,以便它們彼此堆疊在一起。還要注意addChild()調用中附加的2個Vec2類型參數。這些是比率和偏移量。這些參數可以看作是速度與父節點的比率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章