예제 #1
0
    public static void Editor_Azulejo_Atributos(byte x, byte y)
    {
        Editor_Azulejos Objetos     = Editor_Azulejos.Objetos;
        Point           Azulejo     = new Point(Objetos.scrlAzulejoX.Value + x, Objetos.scrlAzulejoY.Value + y);
        Point           Localização = new Point(x * Globais.Grade + Globais.Grade / 2 - 5, y * Globais.Grade + Globais.Grade / 2 - 6);

        // Previni erros
        if (Azulejo.X > Listas.Azulejo[Objetos.scrlAzulejo.Value].Azulejo.GetUpperBound(0))
        {
            return;
        }
        if (Azulejo.Y > Listas.Azulejo[Objetos.scrlAzulejo.Value].Azulejo.GetUpperBound(1))
        {
            return;
        }

        // Desenha uma letra e colore o azulejo referente ao atributo
        switch ((Globais.Azulejo_Atributos)Listas.Azulejo[Objetos.scrlAzulejo.Value].Azulejo[Azulejo.X, Azulejo.Y].Atributo)
        {
        case Globais.Azulejo_Atributos.Bloqueio:
            Desenhar(Jan_Azulejo, Tex_Preenchido, x * Globais.Grade, y * Globais.Grade, 0, 0, Globais.Grade, Globais.Grade, CCor(225, 0, 0, 75));
            Desenhar(Jan_Azulejo, "B", Localização.X, Localização.Y, SFML.Graphics.Color.Red);
            break;
        }
    }
예제 #2
0
    public static void Editor_Azulejo_BloqDirecional(byte x, byte y)
    {
        Editor_Azulejos Objetos = Editor_Azulejos.Objetos;
        Point           Azulejo = new Point(Objetos.scrlAzulejoX.Value + x, Objetos.scrlAzulejoY.Value + y);
        byte            Y;

        // Previni erros
        if (Azulejo.X > Listas.Azulejo[Objetos.scrlAzulejo.Value].Azulejo.GetUpperBound(0))
        {
            return;
        }
        if (Azulejo.Y > Listas.Azulejo[Objetos.scrlAzulejo.Value].Azulejo.GetUpperBound(1))
        {
            return;
        }

        for (byte i = 0; i <= (byte)Globais.Direções.Quantidade - 1; i++)
        {
            // Estado do bloqueio
            if (Listas.Azulejo[Objetos.scrlAzulejo.Value].Azulejo[Azulejo.X, Azulejo.Y].Bloqueio[i])
            {
                Y = 8;
            }
            else
            {
                Y = 0;
            }

            // Renderiza
            Desenhar(Jan_Azulejo, Tex_Direções, x * Globais.Grade + Globais.Bloqueio_Posição(i).X, y * Globais.Grade + Globais.Bloqueio_Posição(i).Y, i * 8, Y, 6, 6);
        }
    }
예제 #3
0
 private void butAzulejos_Click(object sender, EventArgs e)
 {
     // Verifica se os diretórios foram selecionados
     if (Listas.Opções.Diretório_Servidor == String.Empty || Listas.Opções.Diretório_Cliente == String.Empty)
     {
         MessageBox.Show("Selecione o diretório do servidor e/ou do cliente.");
     }
     else
     {
         Editor_Azulejos.Abrir();
     }
 }
예제 #4
0
    public static void Editor_Azulejo()
    {
        Editor_Azulejos Objetos = Editor_Azulejos.Objetos;

        // Somente se necessário
        if (!Objetos.Visible)
        {
            return;
        }

        // Limpa a área com um fundo preto
        Jan_Azulejo.Clear(SFML.Graphics.Color.Black);

        // Dados
        Texture Textura     = Tex_Azulejo[Objetos.scrlAzulejo.Value];
        Size    Tamanho     = TTamanho(Textura);
        Point   Localização = new Point(Objetos.scrlAzulejoX.Value * Globais.Grade, Objetos.scrlAzulejoY.Value * Globais.Grade);

        // Desenha o azulejo e as grades
        Transparente(Jan_Azulejo);
        Desenhar(Jan_Azulejo, Textura, new Rectangle(Localização, Tamanho), new Rectangle(new Point(0), Tamanho));

        for (byte x = 0; x <= Objetos.picAzulejo.Width / Globais.Grade; x++)
        {
            for (byte y = 0; y <= Objetos.picAzulejo.Height / Globais.Grade; y++)
            {
                // Desenha os atributos
                if (Objetos.optAtributos.Checked)
                {
                    Editor_Azulejo_Atributos(x, y);
                }
                // Bloqueios direcionais
                else if (Objetos.optBloqDirecional.Checked)
                {
                    Editor_Azulejo_BloqDirecional(x, y);
                }

                // Grades
                DesenharRetângulo(Jan_Azulejo, x * Globais.Grade, y * Globais.Grade, Globais.Grade, Globais.Grade, CCor(25, 25, 25, 70));
            }
        }

        // Exibe o que foi renderizado
        Jan_Azulejo.Display();
    }