How to leave a function of an object superimposed on that of another object?

1

I'm having problems with my code for a D3D9 function, the "Create" function always overlaps, I need another function of the Draw object to overlap with the others.

class cDrawItem
{
private:
    bool IsInitialized; // Para saber se o objeto foi inicializado.

    // PosX = Posição x em que vai ficar localizada na minha tela
    // PosY = Posição y em que vai ficar localizada na minha tela
    int PosX, PosY;

    // Valor atual do item
    int Value;

    // Texto do item
    std::string Caption;

    // Desenho do item na minha tela
    void Draw(); // Preciso que quando essa função for chamada, fique sobreposta a qualquer outra função
public:
    cDrawItem() : PosX(0), PosY(0), Value(0) {}

    inline int getX() const { return this->PosX; }
    inline int getY() const { return this->PosY; }
    inline int getValue() const { return this->Value; }

    void Create(int _PosX, int _PosY, int _InitValue, std::string ItemCaption);
};

void cDrawItem::Draw()
{
    // Funções utilizando o DirectX para desenho
    D3D::Retangulo(PosX, PosY, 100, 22, D3DCOLOR_ARGB(255, 50, 50, 50));
    D3D::Texto(PosX + 2, PosY, D3DCOLOR_ARGB(255, 255, 000, 000), FL_LEFT, "%s: %i", ItemCaption.c_str(), Value);
}

void cDrawItem::Create(int _PosX, int _PosY, int _InitValue, std::string ItemCaption)
{
    if(!IsInitialized)
    {
        PosX = _PosY;
        PosY = _PosY;
        Value = _InitValue;
        Caption = ItemCaption;
        IsInitialized = true;
    }
    else
        Draw(); // Desenha os itens utilizando a biblioteca do DirectX
}

void Main()
{
    std::unique_ptr<cDrawItem> Item1(new cDrawItem);
    std::unique_ptr<cDrawItem> Item2(new cDrawItem);

    Item1->Create(50, 70, 0, "Item 1");
    Item2->Create(50, 90, -1, "Item 2");
}
    
asked by anonymous 12.11.2017 / 21:30

0 answers