Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. /*
  2. Phaser 3 Percentage Selector
  3. Author: AffectedArc07
  4. Tested on phaser v3.19
  5. */
  6. let percentage_selector = new Phaser.Scene('mainmenu');
  7.  
  8. percentage_selector.init = function() {
  9. this.percentage_number = 10;
  10. }
  11.  
  12. percentage_selector.create = function() {
  13. this.headertext = this.add.text(100, 30, 'Percentage: 100%').setOrigin(0.5);
  14. this.bar = this.add.text(100, 50, '[■■■■■■■■■■]').setOrigin(0.5);
  15.  
  16. const increase = this.add.text(160, 43, '+');
  17. const decrease = this.add.text(30, 43, '-');
  18.  
  19. // Make the - button change color when hovered over
  20. increase.tint = 0xFFFFFF
  21. increase.setInteractive();
  22. increase.on('pointerdown', () => (this.updateBar(1)) );
  23. increase.on('pointerover', () => (increase.tint = 0x00FF00) );
  24. increase.on('pointerout', () => (increase.tint = 0xFFFFFF) );
  25.  
  26. // Make the + button change color when hovered over
  27. decrease.tint = 0xFFFFFF
  28. decrease.setInteractive();
  29. decrease.on('pointerdown', () => (this.updateBar(-1)) );
  30. decrease.on('pointerover', () => (decrease.tint = 0x00FF00) );
  31. decrease.on('pointerout', () => (decrease.tint = 0xFFFFFF) );
  32. };
  33.  
  34. percentage_selector.updateBar = function(num) {
  35. if(this.percentage_number == 10 && num == 1) {
  36. return;
  37. }
  38. if(this.percentage_number == 0 && num == -1) {
  39. return;
  40. }
  41. this.percentage_number = this.percentage_number + num
  42. newSliderText = "["
  43. for (let count = 0; count < this.percentage_number; count++) {
  44. newSliderText += "■"
  45. }
  46. for (let count = 0; count < (10 - this.percentage_number); count++) {
  47. newSliderText += "□"
  48. }
  49. newSliderText += "]"
  50. this.bar.setText(newSliderText);
  51. this.headertext.setText('Percentage: '+(this.percentage_number * 10)+'%')
  52. }
  53.  
  54. // Setup the game configuration
  55. let config = {
  56. type: Phaser.AUTO, // Phaser will use WebGL if available, if not it will use Canvas
  57. width: 200,
  58. height: 75,
  59. pixelArt: true,
  60. scene: [percentage_selector]
  61. };
  62.  
  63. let game = new Phaser.Game(config);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement