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; } }
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); } }
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(); } }
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(); }