В нашей игре не хватает еще двух вещей: врага, которого следует избегать, потому что он может убить нашего персонажа, и счёта за звезды, которые собирает игрок. Сначала остановимся на второй задаче: Для этого мы будем использовать текстовый игровой объект. Мы создадим две новые переменные: одну для хранения текущего счета, а вторую для хранения самого текстового объекта:
var score = 0;
var scoreText;
Значение переменной ScoreText
задается в функции create
:
scoreText = this.add.text(16, 16, 'score: 0', { fontSize: '32px', fill: '#000' });
«16, 16» - это координата для отображения текста. «score: 0» - это строка по умолчанию для отображения, а следующий объект содержит размер шрифта и цвет заливки. Мы не указали, какой шрифт мы хотим использовать, поэтому Phaser будет использовать шрифт по умолчанию, Courier.
Далее нам нужно изменить функцию collectStar
таким образом, чтобы, когда персонаж получает звезду, счет увеличивался, а текст обновлялся:
function collectStar (player, star)
{
star.disableBody(true, true);
score += 10;
scoreText.setText('Score: ' + score);
}
Мы добавляем 10 баллов за каждую звезду, а текст ScoreText
обновляется, чтобы показать новый общий балл. Если вы запустите part9.html
, вы увидите, что звезды падают, и после их сбора счет увеличивается.
В заключительной части мы добавим несколько злодеев.