Projektmanagement-Game/public/js/game.js

151 lines
4.1 KiB
JavaScript
Raw Normal View History

2021-05-31 19:42:33 +00:00
let game = document.getElementById('game');
let game_board_size = calculate_size();
let sprite_size = Math.floor(game_board_size / 11);
2021-05-31 19:42:33 +00:00
2021-05-26 17:34:31 +00:00
const app = new PIXI.Application({
autoResize: true,
resolution: devicePixelRatio,
transparent: true,
width: game_board_size,
height: game_board_size
2021-05-26 17:34:31 +00:00
});
2021-05-31 19:42:33 +00:00
2021-05-26 17:34:31 +00:00
document.getElementById('game').appendChild(app.view);
2021-05-31 19:42:33 +00:00
function Sprite(x, y) {
this.sprite = PIXI.Sprite.from('/img/sprite.jpg');
this.coord_x = x;
this.coord_y = y;
this.getSprite = function () {
this.setSize(this.sprite, sprite_size);
return this.sprite;
}
this.resize = function (sprite_size) {
this.setSize(this.sprite, sprite_size);
}
this.setSize = function (sprite, size) {
sprite.x = this.coord_x * size - size * 0.2;
sprite.y = this.coord_y * size - size * 0.2;
sprite.width = size * 1.5;
sprite.height = size * 1.5;
}
2021-05-31 19:42:33 +00:00
}
2021-05-26 17:34:31 +00:00
2021-05-31 19:42:33 +00:00
let sprites = {
0: new Sprite(1, 1),
1: new Sprite(3, 1),
2: new Sprite(5, 1),
3: new Sprite(7, 1),
4: new Sprite(9, 1),
5: new Sprite(1, 3),
6: new Sprite(9, 3),
7: new Sprite(1, 5),
8: new Sprite(9, 5),
9: new Sprite(1, 7),
10: new Sprite(9, 7),
11: new Sprite(1, 9),
12: new Sprite(3, 9),
13: new Sprite(5, 9),
14: new Sprite(7, 9),
15: new Sprite(9, 9),
2021-05-31 19:42:33 +00:00
}
2021-05-26 17:34:31 +00:00
2021-05-31 19:42:33 +00:00
for (let i = 0; i < 16; i++) {
app.stage.addChild(sprites[i].getSprite());
2021-05-26 17:34:31 +00:00
}
const red_border = new PIXI.Graphics();
red_border.lineStyle(10, 0x862323, 1);
red_border.drawRect(sprite_size * 9 - sprite_size * 0.2, sprite_size * 9 - sprite_size * 0.2, sprite_size * 1.5, sprite_size * 1.5);
app.stage.addChild(red_border);
const first_circle = new PIXI.Graphics();
first_circle.lineStyle(0);
first_circle.beginFill(0xffffff, 1);
first_circle.drawCircle(sprite_size * 3 - sprite_size * 0.2 + sprite_size * 0.75, sprite_size * 9 - sprite_size * 0.2 + sprite_size * 0.75, sprite_size/4);
first_circle.endFill();
app.stage.addChild(first_circle);
const second_circle = new PIXI.Graphics();
second_circle.lineStyle(0);
second_circle.beginFill(0xffffff, 1);
second_circle.drawCircle(sprite_size * 5 - sprite_size * 0.2 + sprite_size * 0.75, sprite_size * 9 - sprite_size * 0.2 + sprite_size * 0.75, sprite_size/4);
second_circle.endFill();
app.stage.addChild(second_circle);
const third_circle = new PIXI.Graphics();
third_circle.lineStyle(0);
third_circle.beginFill(0xffffff, 1);
third_circle.drawCircle(sprite_size * 7 - sprite_size * 0.2 + sprite_size * 0.75, sprite_size * 9 - sprite_size * 0.2 + sprite_size * 0.75, sprite_size/4);
third_circle.endFill();
app.stage.addChild(third_circle);
2021-05-31 19:42:33 +00:00
generate_card("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores.");
function generate_card(s) {
const card = new PIXI.Graphics();
let start_x = game_board_size / 2 - 110;
let start_y = game_board_size / 2 - 150;
card.lineStyle(5, 0x000000, 1);
card.beginFill(0x650A5A);
card.drawRoundedRect(start_x, start_y, 220, 300, 10);
card.endFill();
2021-05-31 19:42:33 +00:00
const style = new PIXI.TextStyle({
fontFamily: 'Arial',
fontSize: 15,
wordWrap: true,
wordWrapWidth: 200,
});
const basicText = new PIXI.Text(s, style);
basicText.x = start_x + 10;
basicText.y = start_y + 10;
card.addChild(basicText);
app.stage.addChild(card);
}
function calculate_size() {
if (game.offsetWidth > game.offsetHeight) {
return game.offsetHeight;
} else {
return game.offsetWidth;
}
2021-05-31 19:42:33 +00:00
}
// ------------------------------------ end code ------------------------------------
// Resize
window.addEventListener('resize', resize);
function resize() {
game_board_size = calculate_size();
// Resize container
app.renderer.resize(game_board_size, game_board_size);
// Resize fields
for (let i = 0; i < 16; i++) {
sprites[i].resize(Math.floor(game_board_size / 11));
}
// Resize red border
// TODO
// Resize first circle
// TODO
}
resize();