summaryrefslogtreecommitdiff
path: root/game/entities/hud.js
blob: bc4b466e3d75e197db4b4d322b9f85bb816825c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
'use strict';

var Hud = function(game, player, x, y, scorefontKey, keyboardSpriteKey) {
  Phaser.Group.call(this, game);
  this.x = x;
  this.y = y;
  this.player = player;
  this.scale = {x: 0.01, y: 0.01};

  this.background = new Phaser.Sprite(this.game, 0, 0, 'hud-bg');
  this.add(this.background);
  this.scoreText = new Phaser.BitmapText(this.game, 344, 20, scorefontKey, '0', 200);
  this.add(this.scoreText);

  this.poisonIndicator = new Phaser.Sprite(this.game, 400, 300, 'poison-pill');
  this.poisonIndicator.scale = {x: 2, y: 2}; //bigger than an actual poison pill
  this.poisonIndicator.anchor = {x: 0.5, y: 0.5};
  this.add(this.poisonIndicator);

  this.controllerDiagram = new Phaser.Sprite(this.game, 0, 600, 'controller-diagram');
  this.add(this.controllerDiagram);

  this.keyboardControls = new Phaser.Sprite(this.game, 0, 1200, keyboardSpriteKey);
  this.add(this.keyboardControls);

  this.currentScore = 0;
};

Hud.prototype = Object.create(Phaser.Group.prototype);
Hud.prototype.constructor = Hud;

Hud.prototype.update = function() {
  if (this.currentScore !== this.player.score) {
    this.currentScore = this.player.score;
    this.scoreText.setText(this.player.score+'');

    var numberOfDigits = Math.floor(Math.log(this.currentScore)/Math.log(10))+1;
    this.scoreText.x = 400 - numberOfDigits*60;
  }

  if (this.poisonIndicator && !this.player.hasPoisonPill) {
    this.poisonIndicator.destroy();
    this.poisonIndicator = null;
  }
};

module.exports = Hud;