예제 #1
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);
        }
    }
예제 #2
0
    private void picAzulejo_MouseDown(object sender, MouseEventArgs e)
    {
        Point Localização = new Point((e.X + scrlAzulejoX.Value * Globais.Grade) / Globais.Grade, (e.Y + scrlAzulejoY.Value * Globais.Grade) / Globais.Grade);
        Point Azulejo_Dif = new Point(e.X - e.X / Globais.Grade * Globais.Grade, e.Y - e.Y / Globais.Grade * Globais.Grade);

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

        // Atributos
        if (optAtributos.Checked)
        {
            // Define
            if (e.Button == MouseButtons.Left)
            {
                Listas.Azulejo[scrlAzulejo.Value].Azulejo[Localização.X, Localização.Y].Atributo = (byte)Atributo;
            }
            // Remove
            else if (e.Button == MouseButtons.Right)
            {
                Listas.Azulejo[scrlAzulejo.Value].Azulejo[Localização.X, Localização.Y].Atributo = 0;
            }
        }
        // Bloqueio direcional
        else if (optBloqDirecional.Checked)
        {
            for (byte i = 0; i <= (byte)Globais.Direções.Quantidade - 1; i++)
            {
                if (Azulejo_Dif.X >= Globais.Bloqueio_Posição(i).X&& Azulejo_Dif.X <= Globais.Bloqueio_Posição(i).X + 8)
                {
                    if (Azulejo_Dif.Y >= Globais.Bloqueio_Posição(i).Y&& Azulejo_Dif.Y <= Globais.Bloqueio_Posição(i).Y + 8)
                    {
                        // Altera o valor de bloqueio
                        Listas.Azulejo[scrlAzulejo.Value].Azulejo[Localização.X, Localização.Y].Bloqueio[i] = !Listas.Azulejo[scrlAzulejo.Value].Azulejo[Localização.X, Localização.Y].Bloqueio[i];
                    }
                }
            }
        }
    }
예제 #3
0
    public static void Editor_Mapas_Mapa_BloqDirecional(short Índice, byte x, byte y)
    {
        Point Azulejo = new Point(Editor_Mapas.Objetos.scrlMapaX.Value + x, Editor_Mapas.Objetos.scrlMapaY.Value + y);
        byte  Y;

        // Apenas se necessário
        if (!Editor_Mapas.Objetos.butMAtributos.Checked)
        {
            return;
        }
        if (!Editor_Mapas.Objetos.optABloqueioDir.Checked)
        {
            return;
        }

        // Previni erros
        if (Azulejo.X > Listas.Mapa[Índice].Azulejo.GetUpperBound(0))
        {
            return;
        }
        if (Azulejo.Y > Listas.Mapa[Índice].Azulejo.GetUpperBound(1))
        {
            return;
        }

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

            // Renderiza
            Desenhar(Jan_Mapa, 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);
        }
    }