「Cocos2dx/ScrollView」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→サンプル) |
(→"Redefinition of エラーが出る場合) |
||
(同じ利用者による、間の8版が非表示) | |||
行1: | 行1: | ||
==サンプル== | ==サンプル== | ||
下半分に複数行ラベルを表示 | 下半分に複数行ラベルを表示 | ||
+ | |||
+ | -HelloworldScene.cpp | ||
auto visibleSize = Director::getInstance()->getVisibleSize(); | auto visibleSize = Director::getInstance()->getVisibleSize(); | ||
Vec2 origin = Director::getInstance()->getVisibleOrigin(); // origin.x = 0; origin.y = 25 | 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"; | 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/ | + | auto labelResult = Label::createWithTTF(text, "fonts/arial.ttf", 10); |
labelResult->setPosition(Vec2(origin.x + labelResult->getContentSize().width / 2, | labelResult->setPosition(Vec2(origin.x + labelResult->getContentSize().width / 2, | ||
labelResult->getContentSize().height / 2)); | labelResult->getContentSize().height / 2)); | ||
行14: | 行16: | ||
scroll->addChild(labelResult, 1); | scroll->addChild(labelResult, 1); | ||
addChild(scroll); | 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'