Skip to content

Rendering

miguel edited this page Jul 11, 2018 · 15 revisions

Rendering is a crucial part in the brainGDX framework. libgdx already provides commands to render textures, sprites, particles and animations on the screen. The problem is when it comes to more complex examples:'

  • how to render a village with 25 different NPCs without writing 25 Java classes?
  • how to change the appearance of game objects dynamically?
  • how to disable rendering for a particular game object?
  • how to easily add debug rendering for game objects?

The solutions are so called Renderer implementations. A Renderer describes how a game object should get rendered:

public class MyRenderer implements GameObjectRenderer {
    @Override
    public void init() {
        // is called when the renderer gets attached
    }

    @Override
    public void render(GameObject object, Batch batch, float delta) {
        // is called when the object should get rendered
    }
}

brainGDX already comes with various predefined renderers which you can use to describe the render behavior for your entities:

  • QuadRenderer renders a quad.
  • CircleRenderer renders a circle.
  • SpriteRenderer renders a defined sprite.
  • AnimationRenderer renders a defined animation.
  • ParticleRenderer renders a particle effect onto the given renderer (decorator).

Registering a renderer

We need to register a renderer in order to display game objects on the screen:

// Retrieve the renderManager instance
RenderManager renderManager = context.getRenderManager();
// Registering a new renderer for game objects of type '1'
renderManager.register(1, new SpriteRenderer(Assets.Textures.PLAYER));

When running again you should see a red square on the screen.

To learn how to use the renderers, especially how to add actual game objects to your game continue with the next chapter.

Clone this wiki locally