facebook twitter hatena line email

「Cocos2dx/ScrollView」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==サンプル== ScrollView* scroll = ScrollView::create(); scroll->setContentSize(visibleSize); scroll->setDirection(ScrollView::Direction::VERTICAL); // 縦...」)
 
("Redefinition of エラーが出る場合)
 
(同じ利用者による、間の12版が非表示)
行1: 行1:
 
==サンプル==
 
==サンプル==
    ScrollView* scroll = ScrollView::create();
+
下半分に複数行ラベルを表示
    scroll->setContentSize(visibleSize);
+
 
    scroll->setDirection(ScrollView::Direction::VERTICAL); // 縦方向だけにスクロール
+
-HelloworldScene.cpp
    addChild(scroll);
+
auto visibleSize = Director::getInstance()->getVisibleSize();
    auto labelResult = Label::createWithTTF("Hello World\nHello World2", "fonts/Marker Felt.ttf", 8);
+
Vec2 origin = Director::getInstance()->getVisibleOrigin(); // origin.x = 0; origin.y = 25
    labelResult->setPosition(Vec2(origin.x + visibleSize.width/2,
+
std::string text = "Hello World\nHello World2\n2\n2\n2\n2\n2\n2\n3\n3\n3\n3\n3\n3\n3\n4\n4\n5\n5\n5\n";
                               origin.y + visibleSize.height/2 - labelResult->getContentSize().height));
+
auto labelResult = Label::createWithTTF(text, "fonts/arial.ttf", 10);
    this->addChild(labelResult, 1);
+
labelResult->setPosition(Vec2(origin.x + labelResult->getContentSize().width / 2,
    scroll->setPosition
+
                               labelResult->getContentSize().height / 2));
            (Vec2(origin.x + visibleSize.width/2,
+
ScrollView* scroll = ScrollView::create();
                origin.y + (labelResult->getContentSize().height - visibleSize.height)));
+
scroll->setContentSize(Size(labelResult->getContentSize().width, visibleSize.height / 2));
    scroll->addChild(labelResult);
+
scroll->setInnerContainerSize(Size(labelResult->getContentSize().width, labelResult->getContentSize().height));
 +
scroll->setDirection(ScrollView::Direction::VERTICAL); // 縦方向だけにスクロール
 +
scroll->setPosition(Vec2(origin.x - scroll->getContentSize().width / 2 + visibleSize.width / 2, origin.y));
 +
scroll->addChild(labelResult, 1);
 +
addChild(scroll);
 +
 
 +
==Redefinition of エラーが出る場合==
 +
同じ変数を使ってるので削除する(上のコードだとvisibleSize、originはすでに宣言されている可能性がある)
 +
 
 +
==v3.17ではsetInnerContainerSizeが使えない?==
 +
error: no member named 'setInnerContainerSize' in 'cocos2d::extension::ScrollView'
  
 
==参考==
 
==参考==
 
https://iscene.jimdo.com/2015/03/17/cocos2d-x-ver-3-x-%E8%A4%87%E6%95%B0%E8%A1%8C%E3%81%AE%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E8%A1%A8%E7%A4%BA%E3%82%92%E3%81%99%E3%82%8B%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%93%E3%83%A5%E3%83%BC%E3%81%AE%E4%BD%9C%E6%88%90-uitextview%E3%81%AE%E4%BB%A3%E7%94%A8/
 
https://iscene.jimdo.com/2015/03/17/cocos2d-x-ver-3-x-%E8%A4%87%E6%95%B0%E8%A1%8C%E3%81%AE%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E8%A1%A8%E7%A4%BA%E3%82%92%E3%81%99%E3%82%8B%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%93%E3%83%A5%E3%83%BC%E3%81%AE%E4%BD%9C%E6%88%90-uitextview%E3%81%AE%E4%BB%A3%E7%94%A8/

2018年11月20日 (火) 16:08時点における最新版

サンプル

下半分に複数行ラベルを表示

-HelloworldScene.cpp

auto visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin(); // origin.x = 0; origin.y = 25
std::string text = "Hello World\nHello World2\n2\n2\n2\n2\n2\n2\n3\n3\n3\n3\n3\n3\n3\n4\n4\n5\n5\n5\n";
auto labelResult = Label::createWithTTF(text, "fonts/arial.ttf", 10);
labelResult->setPosition(Vec2(origin.x + labelResult->getContentSize().width / 2,
                              labelResult->getContentSize().height / 2));
ScrollView* scroll = ScrollView::create();
scroll->setContentSize(Size(labelResult->getContentSize().width, visibleSize.height / 2));
scroll->setInnerContainerSize(Size(labelResult->getContentSize().width, labelResult->getContentSize().height));
scroll->setDirection(ScrollView::Direction::VERTICAL); // 縦方向だけにスクロール
scroll->setPosition(Vec2(origin.x - scroll->getContentSize().width / 2 + visibleSize.width / 2, origin.y));
scroll->addChild(labelResult, 1);
addChild(scroll);

Redefinition of エラーが出る場合

同じ変数を使ってるので削除する(上のコードだとvisibleSize、originはすでに宣言されている可能性がある)

v3.17ではsetInnerContainerSizeが使えない?

error: no member named 'setInnerContainerSize' in 'cocos2d::extension::ScrollView'

参考

https://iscene.jimdo.com/2015/03/17/cocos2d-x-ver-3-x-%E8%A4%87%E6%95%B0%E8%A1%8C%E3%81%AE%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E8%A1%A8%E7%A4%BA%E3%82%92%E3%81%99%E3%82%8B%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%93%E3%83%A5%E3%83%BC%E3%81%AE%E4%BD%9C%E6%88%90-uitextview%E3%81%AE%E4%BB%A3%E7%94%A8/