Projektmanagement-Game/public/js/Button.js
H4CK3R-01 c4a8c84db2 - Added multiplayer functions
- Only active user can roll the dice
- Only active user can select answers
- Card will be destroyed if active user selects answer
2021-06-10 14:05:01 +02:00

72 lines
2.2 KiB
JavaScript

function Button(default_color, hover_color, select_color, width, height, x, y, text, status, button_is_answer, click) {
this.graphics = new PIXI.Graphics();
this.default_color = default_color;
this.hover_color = hover_color;
this.width = width;
this.height = height;
this.x = x;
this.y = y;
this.text = text;
this.status = status;
this.button_is_answer = button_is_answer;
this.click = click;
this.selected = false;
let _this = this;
this.changeButtonColor = function (color) {
this.graphics.clear();
this.graphics.lineStyle(4, 0x000000, 1);
this.graphics.beginFill(color);
this.graphics.drawRect(this.x, this.y, this.width, this.height);
this.graphics.endFill();
}
this.selectButton = function () {
this.selected = true;
this.changeButtonColor(select_color);
}
this.unSelectButton = function () {
this.selected = false;
this.changeButtonColor(default_color);
}
this.getButton = function () {
const style = new PIXI.TextStyle({
fontFamily: 'Arial',
fontSize: 60,
wordWrap: true,
wordWrapWidth: game_board_size * 0.5 - 20,
});
this.graphics.clear();
this.graphics.lineStyle(4, 0x000000, 1);
this.graphics.beginFill(this.default_color);
this.graphics.drawRect(this.x, this.y, this.width, this.height);
this.graphics.endFill();
let text_field = new PIXI.Text(this.text, style);
text_field.x = this.x + this.width / 2 - text_field.width / 2;
text_field.y = this.y + this.height / 2 - text_field.height / 2;
this.graphics.addChild(text_field);
this.graphics.interactive = true;
this.graphics.buttonMode = true;
this.graphics.defaultCursor = 'pointer';
this.graphics.on('click', function () {
click();
});
this.graphics.on('mouseover', function () {
if (!_this.selected) {
_this.changeButtonColor(_this.hover_color);
}
});
this.graphics.on('mouseout', function () {
if (!_this.selected) _this.changeButtonColor(_this.default_color);
});
return this.graphics;
}
}