From 2a153b7c7c1a5cfb411632c1866f1767af28dc7c Mon Sep 17 00:00:00 2001 From: Marc Di Luzio Date: Sat, 31 Jan 2015 18:47:05 +0000 Subject: [PATCH] Add winning text --- js/game.js | 54 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 43 insertions(+), 11 deletions(-) diff --git a/js/game.js b/js/game.js index c202ffa..2713482 100644 --- a/js/game.js +++ b/js/game.js @@ -15,13 +15,14 @@ var destinations = [{ name: "PIZZA", num: 0, }, { - name: "PACKED LUNCH", + name: "KITCHEN", num: 0, }, ]; var title = "FOODICATOR: RELOADED"; var titlefont = "40px Arial"; var destfont = "25px Arial"; +var winningfont = "30px Arial"; // to block until ready var ready = false; @@ -124,15 +125,16 @@ var game = new Phaser.Game(width, height, // get the length of a vector function lengthV(vec) { - return length(vec.x,vec.y); + return length(vec.x, vec.y); } -function length(x,y) { + +function length(x, y) { return Math.sqrt((x * x) + (y * y)); } // get the length of a vector function distance(x1, y1, x2, y2) { - return length( x1 - x2, y1 - y2 ); + return length(x1 - x2, y1 - y2); } // Normalise a vector @@ -303,21 +305,45 @@ function updateDests() { } // Add for the current player - var dist = distance(player.sprite.x,player.sprite.y, dest.text.x, dest.text.y); - if (dist < votingRange) - { - dest.num++; - dest.vote = true; - } + var dist = distance(player.sprite.x, player.sprite.y, dest.text.x, dest.text.y); + if (dist < votingRange) { + dest.num++; + dest.vote = true; + } } // Set the texts + var winners = []; for (var i = 0; i < len; ++i) { var dest = destinations[i]; - dest.text.setText( dest.name + ":" + dest.num); + dest.text.setText(dest.name + " HAS " + dest.num); + + // add to the array + if ((winners.length === 0) || (dest.num == winners[0].num)) { + winners.push(dest); + } else if ((dest.num > winners[0].num)) // clear array and add + { + winners = []; + winners.push(dest); + } } + + var wintext; + if (winners.length === 0) { + wintext = "NO WINNER"; + } else if (winners.length === 1) { + wintext = winners[0].name + " IS WINNINGS"; + } else { + wintext = "DRAW BETWEEN " + winners[0].name; + var left = winners.length; + for (var i = 1; i < left; ++i) { + wintext += " AND " + winners[i].name; + } + } + + winningText.setText(wintext); } // Phaser functions @@ -362,6 +388,12 @@ function create() { textGroup.add(titleText); createDests(); + + winningText = game.add.text(game.world.centerX, height - 60, "NO WINNER", { + font: winningfont, + fill: "#FFFFFF" + }); + winningText.anchor.x = Math.round(winningText.width * 0.5) / winningText.width; } // On update