【COCOS2D-X】クエストリストの作成に着手

こんな感じでウィンドウを作成しました。

「冒険」ボタンをタップすると表示するようになっています。

これを縦に並べてクエストリストを表示させたいのですが、

データ構造はこんな感じで実装しました。

typedef struct _TextLabel {
    cocos2d::Label* label;
    cocos2d::Vec2 point;
} TextLabel;

typedef struct _QuestListMenu {
    Parts parts;
    TextLabel questName;
} QuestListMenu;

typedef struct _QuestList {
    Parts parts;
    QuestListMenu questListMenu[QUEST_NUM];
    float scaleRate;
} QuestList;

シーンの中ではnew演算子禁止なので、listは使えません。

散々悩んだのですが、とりあえず、大きめの配列を用意して使用することにします。

    if(isTouch(touch->getLocation(), &(questButton.parts)))
    {
        log("touch questButton");
        auto questList = getQuestList();
        auto questName = questList->begin();
        questListMenu.questListMenu->parts.sprite = Sprite::create("btn02_03_s_bl.png");
        questListMenu.questListMenu->parts.sprite->setAnchorPoint(Vec2(0.0, 1.0));
        questListMenu.questListMenu->parts.point = questListMenu.parts.point;
        questListMenu.questListMenu->parts.sprite->setPosition(questListMenu.questListMenu->parts.point);
        questListMenu.questListMenu->parts.size = Size(questListMenu.questListMenu->parts.sprite->getContentSize().width * questListMenu.scaleRate,
                                                       questListMenu.questListMenu->parts.sprite->getContentSize().height);
        questListMenu.questListMenu->parts.sprite->setScale(questListMenu.scaleRate, 1);
        this->addChild(questListMenu.questListMenu->parts.sprite, 5);
    }

タップ処理です。

今の段階では上の画面のようなウィンドウを作成追加するだけです。

今後は、数を増やしたり、テキストを追加したりする予定です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください