예제 #1
0
  public void drawSheepMessage(SheepMessage msg) {
    if (resultTime > resultFadeDelay) {
      resultTime = resultFadeDelay;
      if (!shownBottomMenu) {
        shownBottomMenu = true;
        showSheepMessageButtons();
      }
    }
    // get the alpha based on the time the message has been on the screen
    float alpha = (resultTime / resultFadeDelay) * resultBannerAlpha;
    // set the alpha of the batch
    batch.setColor(1.0f, 1.0f, 1.0f, alpha);

    TextBounds tb = assetHolder.fontWhite.getMultiLineBounds(msg.msg);

    // draw the background for the text with some padding
    Texture tex = assetHolder.redTex;
    if (msg.color.equals("green")) tex = assetHolder.greenTex;
    batch.draw(
        tex,
        assetHolder.getPercentWidth(.45f) - (float) tb.width / 2.0f,
        assetHolder.getPercentHeight(msg.pos - .025f) - (float) tb.height / 2.0f,
        tb.width + assetHolder.getPercentWidth(.1f),
        tb.height + assetHolder.getPercentHeight(.05f));

    // set the alpha of the font
    assetHolder.fontWhite.setColor(1, 1, 1, alpha);
    assetHolder.fontWhite.drawMultiLine(
        batch,
        msg.msg,
        assetHolder.getPercentWidth(.5f) - (float) tb.width / 2.0f,
        assetHolder.getPercentHeight(msg.pos) + (float) tb.height / 2.0f,
        tb.width,
        HAlignment.CENTER);
  }
예제 #2
0
 public void render(float delta) {
   // do messages
   if (sheepGame.hasMessage()) {
     batch.begin();
     if (resultTime < 0) resultTime = 0;
     resultTime += delta;
     drawSheepMessage(sheepGame.getMessage());
     batch.end();
   }
   stage.act(delta);
   stage.draw();
   if (inOverlay) {
     batch.begin();
     batch.setColor(0f, 0f, 0f, 0.75f);
     batch.draw(
         assetHolder.white, 0, 0, assetHolder.getPercentWidth(1), assetHolder.getPercentHeight(1));
     batch.end();
   }
   overlayStage.act(delta);
   overlayStage.draw();
 }