Entradas de Oin Zea

Christian, handyman, locksmith, programmer and gamer.

Refacturación

Corrigiendo las consecuencias de reusar código que no está diseñado para el propósito. En la prueba de colores, se reciclo la clase PixMapActor() que crea y dispone una textura por instancia. Esto hace una textura por cada color y es totalmente innecesario.

Ahora solo se crea una textura a nivel de la clase y se recicla por cada color.  

private TextureRegion textureRegion;

También ahora solo se muestran 16 colores.

int flux = 0;
int totalColors = 16;

colorTest = new Array<>(false, totalColors);

for (ObjectMap.Entry<String, Color> color : Colors.getColors()) {
     if (flux++ >= totalColors) break;
     colorTest.add(new BaseActor(color.value));
}

for (BaseActor baseActor : colorTest) stage.addActor(baseActor);

El método setColorSprites() calcula el tamaño de la textura y aplica la misma a todos los actores. Cada actor se encarga de aplicar color a la textura.

private void setColorSprites() {

     int height = Math.round(stage.getHeight());
     int width = Math.round(stage.getWidth() / colorTest.size);

     Pixmap pixmap = new Pixmap(width, height, Pixmap.Format.RGB565);
     pixmap.setColor(Color.WHITE);
     pixmap.fillRectangle(0, 0, width, height);

     if (textureRegion != null) textureRegion.getTexture().dispose();

     textureRegion = new TextureRegion(new Texture(pixmap));

     textureRegion.getTexture().setFilter(
          Texture.TextureFilter.Nearest,
          Texture.TextureFilter.Nearest);

     for (BaseActor baseActor : colorTest) baseActor.setTextureRegion(textureRegion);

     pixmap.dispose();
}

Con esa alteración se reduce el uso de memoria a una pizca comparado al código anterior.

Prueba de Sistema.

Usando:

Líneas importantes:

La variable testRunTime decide cuanto tiempo cada prueba dura.

private final float testRunTime;
testRunTime = 4;

La variable fontMonoSpace hace conveniente tener el tamaño de la letra y no importa si guardas el valor altura o ancho porque en una tipografía Monoespacio todo carácter ocupa el mismo espacio.

Continue reading →