Cocos2dx LabelTTFのスクロール表示とか左寄せとかあれこれ
なんかよくわからないタイトルになりましたすいません。
とりあえずこんな文言をなんとか表示させたいのです。
日本の地獄は自慢の地獄
罪にあわせておもてなし
(はい!)
日本の地獄はじゅうろくしょう地獄!
全部合わせて、にひゃくななじゅうにもあるーーーーーー!!
ここは地獄!地獄!素敵な地獄!
地獄、じご、じご、じごくだよ~!!
ここは地獄!地獄!楽しい地獄!
地獄、じご、じご、じごくだよ~!!
等活(とうかつ)黒縄(こくじょう)衆合(しゅうごう)
叫喚(きょうかん)
大叫喚(だいきょうかん)
焦熱(しょうねつ)に 大焦熱(だいしょうねつ) 阿鼻!!
不喜処(ふきしょ)(に)瓮熟処(おうじゅくしょ)、
如飛虫堕処(にょひちゅうだしょ)
受苦無有数量処(じゅくむうすうりょうしょ)
屎泥処(しでいしょ)(に)、刀輪処(とうりんしょ)
多苦処(たくしょ)(に)闇冥処(あんみゅうしょ)(に)極苦処(ごくくしょ)
頞部陀(あぶだ)、刺部陀(にらぶだ)
頞听陀(あただ)、臛臛婆(かかば)、虎虎婆(ここば)
嗢鉢羅(うばら)、(に)、鉢特摩(はどま)(に)摩訶鉢特摩(まかはどま)
衆病処(しゅうびょうしょ)、(ったら) 雨鉄処(うてつしょ)、(ったら)
悪杖処(あくじょうしょ)、黒色鼠狼処(こくしょくそうろうしょ)、
針山、血の池、まだまだ色々!
地獄はあるかもしれないよ!!
この世の行い気をつけてー!
ここは地獄!地獄!素敵な地獄!
地獄、じご、じご、じごくだよ~!!
ここは地獄!地獄!楽しい地獄!
地獄、じご、じご、じご、じご、じご、
じご、じご、じご、じご、じご、じごくだよ~!!
嗚呼~
鬼灯の冷徹なのはただの趣味です、気にしないでください。
とりあえず適当に表示させて見る
auto string_txt = "日本の地獄は自慢の地獄\n罪にあわせておもてなし\n(はい!)\n日本の地獄はじゅうろくしょう地獄!\n全部合わせて、にひゃくななじゅうにもあるーーーーーー!!\n\nここは地獄!地獄!素敵な地獄!\n地獄、じご、じご、じごくだよ~!!\n\nここは地獄!地獄!楽しい地獄!\n地獄、じご、じご、じごくだよ~!!\n\n等活(とうかつ)黒縄(こくじょう)衆合(しゅうごう)\n叫喚(きょうかん)\n大叫喚(だいきょうかん)\n焦熱(しょうねつ)に 大焦熱(だいしょうねつ) 阿鼻!!\n不喜処(ふきしょ)(に)瓮熟処(おうじゅくしょ)、\n如飛虫堕処(にょひちゅうだしょ)\n受苦無有数量処(じゅくむうすうりょうしょ)\n屎泥処(しでいしょ)(に)、刀輪処(とうりんしょ)\n多苦処(たくしょ)(に)闇冥処(あんみゅうしょ)(に)極苦処(ごくくしょ)\n\n頞部陀(あぶだ)、刺部陀(にらぶだ)\n頞听陀(あただ)、臛臛婆(かかば)、虎虎婆(ここば)\n嗢鉢羅(うばら)、(に)、鉢特摩(はどま)(に)摩訶鉢特摩(まかはどま)\n\n衆病処(しゅうびょうしょ)、(ったら) 雨鉄処(うてつしょ)、(ったら)\n悪杖処(あくじょうしょ)、黒色鼠狼処(こくしょくそうろうしょ)、\n針山、血の池、まだまだ色々!\n\n地獄はあるかもしれないよ!!\nこの世の行い気をつけてー!\n\nここは地獄!地獄!素敵な地獄!\n地獄、じご、じご、じごくだよ~!!\n\nここは地獄!地獄!楽しい地獄!\n地獄、じご、じご、じご、じご、じご、\nじご、じご、じご、じご、じご、じごくだよ~!!\n\n嗚呼~ \n"; auto label = LabelTTF::create(string_txt, "Arial Rounded MT Bold", 15); addChild(label);
まぁそりゃそうです
スクロールさせる
//Scrollview auto *scroll = ScrollView::create(window_size); scroll->setDirection(ScrollView::Direction::VERTICAL); addChild(scroll); //Label auto label = LabelTTF::create(string_txt, "Arial Rounded MT Bold", 15); scroll->setContainer(label);
scroll->setDirection(ScrollView::Direction::VERTICAL);
縦方向だけにスクロールさせてみます。
画面の大きさに合わせて自動改行
//Scrollview auto *scroll = ScrollView::create(window_size); scroll->setDirection(ScrollView::Direction::VERTICAL); addChild(scroll); //Label auto label = LabelTTF::create(string_txt, "Arial Rounded MT Bold", 15); label->setDimensions(Size(window_size.width,0)); label->setDimensions(Size(label->getContentSize().width, label->getContentSize().height)); scroll->setContainer(label);
左寄せにする
//Scrollview auto *scroll = ScrollView::create(window_size); scroll->setDirection(ScrollView::Direction::VERTICAL); addChild(scroll); //Label auto label = LabelTTF::create(string_txt, "Arial Rounded MT Bold", 15); label->setDimensions(Size(window_size.width,0)); label->setDimensions(Size(label->getContentSize().width, label->getContentSize().height)); label->setHorizontalAlignment(TextHAlignment::LEFT); scroll->setContainer(label);
文字の開始位置を画面の上に合わせる
現在のアンカーポイントが0,0左下にセットされている訳です。
大きいサイズの文字データの一番左上から表示させたいので、
widthは0
heightはコンテンツサイズから画面縦を引いた負数になります
//Scrollview auto *scroll = ScrollView::create(window_size); scroll->setDirection(ScrollView::Direction::VERTICAL); addChild(scroll); //Label auto label = LabelTTF::create(string_txt, "Arial Rounded MT Bold", 15); label->setDimensions(Size(window_size.width,0)); label->setDimensions(Size(label->getContentSize().width, label->getContentSize().height)); label->setHorizontalAlignment(TextHAlignment::LEFT); scroll->setContainer(label); scroll->setContentOffset(Point(0, 0 - (label->getContentSize().height - window_size.height)));
これで思い通りになりました。
スクロールコンテンツのサイズはsetContainerSizeでセット出来ます。