title: libGDX - Add scores & display it at top left corner of the screen?
body: <p>Here is the sample code of a simple game in libGDX.
  When a rain drop falls into a bucket,score should be increased by one.
  And total score should be shown at the top left corner.</p>
  
  <p>If 3 drops are missed than display GAME OVER.
  I know to increase the score but i don't know to display it.
  Thank you.</p>
  
  <pre><code>public class Drop implements ApplicationListener {
  Texture dropImage;
  Texture bucketImage;
  Sound dropSound;
  Music rainMusic;
  SpriteBatch batch;
  OrthographicCamera camera;
  Rectangle bucket;
  Array&lt;Rectangle&gt; raindrops;
  long lastDropTime;
  
  @Override
  public void create() {
    // load the images for the droplet and the bucket, 64x64 pixels each
    dropImage = new Texture(Gdx.files.internal("droplet.png"));
    bucketImage = new Texture(Gdx.files.internal("bucket.png"));
  
    // load the drop sound effect and the rain background "music"
    dropSound = Gdx.audio.newSound(Gdx.files.internal("drop.wav"));
    rainMusic = Gdx.audio.newMusic(Gdx.files.internal("rain.mp3"));
  
    // start the playback of the background music immediately
    rainMusic.setLooping(true);
    rainMusic.play();
  
    // create the camera and the SpriteBatch
    camera = new OrthographicCamera();
    camera.setToOrtho(false, 800, 480);
    batch = new SpriteBatch();
  
    // create a Rectangle to logically represent the bucket
    bucket = new Rectangle();
    bucket.x = 800 / 2 - 64 / 2; // center the bucket horizontally
    bucket.y = 20; // bottom left corner of the bucket is 20 pixels above the bottom         screen edge
    bucket.width = 64;
    bucket.height = 64;
  
    // create the raindrops array and spawn the first raindrop
    raindrops = new Array&lt;Rectangle&gt;();
    spawnRaindrop();
  }
  
  private void spawnRaindrop() {
    Rectangle raindrop = new Rectangle();
    raindrop.x = MathUtils.random(0, 800-64);
    raindrop.y = 480;
    raindrop.width = 64;
    raindrop.height = 64;
    raindrops.add(raindrop);
    lastDropTime = TimeUtils.nanoTime();
  }
  
  @Override
  public void render() {
    // clear the screen with a dark blue color. The
    // arguments to glClearColor are the red, green
    // blue and alpha component in the range [0,1]
    // of the color to be used to clear the screen.
    Gdx.gl.glClearColor(0, 0, 0.2f, 1);
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
  
    // tell the camera to update its matrices.
    camera.update();
  
    // tell the SpriteBatch to render in the
    // coordinate system specified by the camera.
    batch.setProjectionMatrix(camera.combined);
  
    // begin a new batch and draw the bucket and
    // all drops
    batch.begin();
    batch.draw(bucketImage, bucket.x, bucket.y);
    for(Rectangle raindrop: raindrops) {
       batch.draw(dropImage, raindrop.x, raindrop.y);
    }
    batch.end();
  
    // process user input
    if(Gdx.input.isTouched()) {
       Vector3 touchPos = new Vector3();
       touchPos.set(Gdx.input.getX(), Gdx.input.getY(), 0);
       camera.unproject(touchPos);
       bucket.x = touchPos.x - 64 / 2;
    }
    if(Gdx.input.isKeyPressed(Keys.LEFT)) bucket.x -= 200 * Gdx.graphics.getDeltaTime();
    if(Gdx.input.isKeyPressed(Keys.RIGHT)) bucket.x += 200 * Gdx.graphics.getDeltaTime();
  
    // make sure the bucket stays within the screen bounds
    if(bucket.x &lt; 0) bucket.x = 0;
    if(bucket.x &gt; 800 - 64) bucket.x = 800 - 64;
  
    // check if we need to create a new raindrop
    if(TimeUtils.nanoTime() - lastDropTime &gt; 1000000000) spawnRaindrop();
  
    // move the raindrops, remove any that are beneath the bottom edge of
    // the screen or that hit the bucket. In the later case we play back
    // a sound effect as well.
    Iterator&lt;Rectangle&gt; iter = raindrops.iterator();
    while(iter.hasNext()) {
       Rectangle raindrop = iter.next();
       raindrop.y -= 200 * Gdx.graphics.getDeltaTime();
       if(raindrop.y + 64 &lt; 0) iter.remove();
       if(raindrop.overlaps(bucket)) {
          dropSound.play();
          iter.remove();
       }
    }
  }
  
  @Override
  public void dispose() {
    // dispose of all the native resources
    dropImage.dispose();
    bucketImage.dispose();
    dropSound.dispose();
    rainMusic.dispose();
    batch.dispose();
  }
  
  @Override
  public void resize(int width, int height) {
  }
  
  @Override
  public void pause() {
  }
  
  @Override
  public void resume() {
  }
  }
  </code></pre>