Así que estoy haciendo un juego basado en fichas y me gustaría agregar algunas sombras falsas a las fichas. Es un poco difícil de explicar así que haré con las imágenes:¿Cómo podría hacer de manera eficiente sombras de mosaicos falsas?
Digamos que este es mi mundo baldosas:
Y yo quiero que tenga sombras como esto:
Porque el mundo se basa azulejo, que puede dividir todas las partes de sombra en imágenes separadas:
Pero ahora no tengo idea de cómo iba a traer esto al código. Bueno, en realidad tengo ideas, pero son increíblemente tediosas y no funcionan de manera óptima.
He intentado una masiva sentencia if ...
bool ul = adjacentBlocks[0, 0] == Block.Type.Rock; //Upper Left
bool um = adjacentBlocks[1, 0] == Block.Type.Rock; //Upper Middle
bool ur = adjacentBlocks[2, 0] == Block.Type.Rock; //Upper Right
bool ml = adjacentBlocks[0, 1] == Block.Type.Rock; //Center Left
//bool cm = adjacentBlocks[1, 1] == Block.Type.Rock; //CURRENT BLOCK - NOT NEEDED
bool mr = adjacentBlocks[2, 1] == Block.Type.Rock; //Center Right
bool ll = adjacentBlocks[0, 2] == Block.Type.Rock; //Lower Left
bool lm = adjacentBlocks[1, 2] == Block.Type.Rock; //Lower Middle
bool lr = adjacentBlocks[2, 2] == Block.Type.Rock; //Lower Right
if (ml) { texture = "Horizontal"; flipX = false; flipY = false; }
if (mr) { texture = "Horizontal"; flipX = true; flipY = false; }
if (um) { texture = "Vertical"; flipX = false; flipY = false; }
if (lm) { texture = "Vertical"; flipX = false; flipY = true; }
if (ml && ul && um) texture = "HorizontalVertical";
//More if statements I can't be bothered to write
if (ul && um && ur && ml && mr && ll && lm & lr) texture = "Full";
Y una tabla de búsqueda masiva ...
var table = new List<TextureBlockLayout>
{
new TextureBlockLayout("Horizontal", false, false, new[,]
{
{ true, true, false },
{ true, true, false },
{ true, true, false }
}),
new TextureBlockLayout("Horizontal", true, false, new[,]
{
{ false, true, true },
{ false, true, true },
{ false, true, true }
}),
new TextureBlockLayout("Full", false, false, new[,]
{
{ true, true, true },
{ true, true, true },
{ true, true, true }
})
};
Pero ya sea que estoy haciendo algo mal o que simplemente se niegan para trabajar en absoluto. ¿Algunas ideas?
¿Qué quiere decir con "se niegan a trabajar en absoluto"? – millimoose
Básicamente dan texturas de sombra totalmente incorrectas. – Dlaor
Está bien, pero como no ha enumerado ninguno de los códigos de dibujo, "totalmente incorrecto" no ayuda mucho. – millimoose