当前位置: 首页>>代码示例>>C++>>正文


C++ View2::GetBaseFrameset方法代码示例

本文整理汇总了C++中View2::GetBaseFrameset方法的典型用法代码示例。如果您正苦于以下问题:C++ View2::GetBaseFrameset方法的具体用法?C++ View2::GetBaseFrameset怎么用?C++ View2::GetBaseFrameset使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在View2的用法示例。


在下文中一共展示了View2::GetBaseFrameset方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: img

MapEditorForm::MapEditorForm(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MapEditorForm)
{
    ui->setupUi(this);

    is_turf_selected_ = false;

    InitSettersForTypes();

    scene_ = new GraphicsScene;
    map_editor_ = new MapEditor(scene_);

    connect(scene_, &GraphicsScene::mousePressed, map_editor_, &MapEditor::mousePressedEvent);
    connect(scene_, &GraphicsScene::keyboardPressed, map_editor_, &MapEditor::keyPressedEvent);
    connect(scene_, &GraphicsScene::rightClick, this, &MapEditorForm::mapClicked);
    connect(map_editor_, &MapEditor::newSelectionSetted, this, &MapEditorForm::newSelectionSetted);

    map_editor_->Resize(100, 100, 1);

    map_editor_->SetPointer(2, 2);

    ui->graphicsView->setScene(scene_);

    SetSpriter(new SpriteHolder);

    for (auto it = (*itemList()).begin(); it != (*itemList()).end(); ++it)
    {
        IMainObject* loc = it->second(0);
        IOnMapObject* bloc = castTo<IOnMapObject>(loc);
        if (!bloc)
        {
            //delete loc;
            continue;
        }
        bool is_turf = false;
        if (castTo<ITurf>(loc))
        {
            is_turf = true;
        }

        ViewInfo* view_info = bloc->GetView();

        if (   view_info->GetBaseFrameset().GetSprite() == ""
            || view_info->GetBaseFrameset().GetState() == "")
        {
            continue;
        }

        QVector<QPixmap> images;

        View2 view;
        view.LoadViewInfo(*view_info);

        if (view.GetBaseFrameset().GetMetadata() == nullptr)
        {
            continue;
        }

        for (size_t dir = 0; dir < view.GetBaseFrameset().GetMetadata()->dirs; ++dir)
        {
            int current_frame_pos = view.GetBaseFrameset().GetMetadata()->first_frame_pos + dir;

            int image_state_h_ = current_frame_pos / view.GetBaseFrameset().GetSprite()->FrameW();
            int image_state_w_ = current_frame_pos % view.GetBaseFrameset().GetSprite()->FrameW();

            SDL_Surface* s = view.GetBaseFrameset().GetSprite()->GetSDLSprite()->frames
                    [image_state_w_ * view.GetBaseFrameset().GetSprite()->FrameH() + image_state_h_];
            QImage img(static_cast<uchar*>(s->pixels),
                                   s->w, s->h, QImage::Format_ARGB32);

            images.push_back(QPixmap::fromImage(img));
        }
        map_editor_->AddItemType(it->first, images);

        QListWidgetItem* new_item
                = new QListWidgetItem(QIcon(images[0]), bloc->T_ITEM().c_str());

        if (!is_turf)
        {
            types_.push_back(it->first);
            ui->listWidget->addItem(new_item);
        }
        else
        {
            turf_types_.push_back(it->first);
            map_editor_->AddTurfType(it->first);
            ui->listWidgetTurf->addItem(new_item);
        }
    }
}
开发者ID:Heldmaschine,项目名称:karya-valya,代码行数:91,代码来源:mapeditorform.cpp


注:本文中的View2::GetBaseFrameset方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。