2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CocoStudioのUIEditorで作ったListViewを使う(v2.2.6版)

Last updated at Posted at 2015-05-18

今回はUI Editorで作ったUIのListViewの実装サンプルCocos2d-x v2.2.6版です。

kyokomiさんの記事を参考にしました。ありがとうございます。

cocos2d-x - CocosStudioのUIEditorで作ったListViewを使う - Qiita
http://qiita.com/kyokomi/items/46ee2f7c92cf1d3342b8

これができれば、面倒なスクロール制御のUIも素早く作れるようになるでしょう!

まずはUiEditorのほうでListViewコンテナを設置します。
以下では黄色い帯の中に設置しています。
特別な設定はありませんが、倍率を上げるのではなく、サイズを変更で位置を調整しないと
実装のときに表示がおかしくなります。

20150519_053937.jpg

次に、ListViewの中の表示するパーツを作ります。
キャンパスリストを右クリックで追加します。
この時前に作ったキャンパスとサイズが同じになってしまいますが、
左上のキャンパスサイズの設定で調整します。

20150519_054011.jpg

できたら両方共エクスポートし、プロジェクトのResourceフォルダに突っ込みます。

コードは以下のようになります。
ListViewに入れる複数のテキストと画像を変更する操作をしているところがキモです。

まずはUI全体を表示。

    // UI設置
    gui::TouchGroup* ul = gui::TouchGroup::create();
    ul->addWidget(GUIReader::shareReader()->widgetFromJsonFile("CollectionView/CollectionView_1.json"));
    this->addChild(ul);

ほかのパーツは前回説明したので、はしょってListViewの設定にいきます。

v2.2.6ではCocoStudioで作ったパーツは「ウィジェット」という名前で扱われます。

配置したListViewは、名前指定で捕捉します。

    // ListView設定
    UIListView *pList = (UIListView*)ul->getWidgetByName("ListView_1");

次に、ListViewに入れるパーツを設定します。
Jsonを読み込んでパーツをインスタンス化し、さらにパーツの中のパーツを設定していきます。
設定時に、CocoStudioでつけたパーツの名前を使います。

最後に、pushBackCustomItem でListViewにパーツを突っ込みます。

	for (int i=0; i<10; i++) {
            UIWidget *listObj = GUIReader::shareReader()->widgetFromJsonFile("listObject/listObject.json");

            ((UILabel*)listObj->getChildByName("Label_1"))->setText("hogehoge");
            ((UIImageView*)listObj->getChildByName("Image_3"))->loadTexture("hogehoge.png");

            pList->pushBackCustomItem(listObj);
	}

実行でこんな感じになります。
(実際のゲーム用にちょっといじってあるので、表示は少し違います)

20150519_060001.jpg

このようなスクロール処理を手づけて作ったことがあるのですが、3日以上かかってました。
複雑なコーディング、設置の場所調整など、そうとう面倒です。

今回は30分かかっていません。
CocoStudioで作ると非常に効率的です。

参考まで。
Good luck!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?