authoritative server OK

+ TODO actual matchmaking
This commit is contained in:
LuckyLaszlo
2022-11-21 19:46:25 +01:00
parent 48665cfe30
commit add08c216f
20 changed files with 485 additions and 240 deletions

View File

@@ -1,50 +1,50 @@
import * as c from "../constants.js"
import {Vector, VectorInteger} from "../../shared_js/class/Vector.js";
import {Rectangle, Line} from "../../shared_js/class/Rectangle.js";
import {TextElem, TextNumericValue} from "./Text.js";
import { GameComponents } from "../../shared_js/class/GameComponents.js";
import { GameComponentsForClient } from "./GameComponents.js";
import { RectangleClient, Line } from "./RectangleClient.js";
class GameComponentsClient extends GameComponents {
class GameComponentsClient extends GameComponentsForClient {
midLine: Line;
score1: TextNumericValue;
score2: TextNumericValue;
scoreLeft: TextNumericValue;
scoreRight: TextNumericValue;
w_grid_mid: Rectangle;
w_grid_u1: Rectangle;
w_grid_d1: Rectangle;
h_grid_mid: Rectangle;
h_grid_u1: Rectangle;
h_grid_d1: Rectangle;
w_grid_mid: RectangleClient;
w_grid_u1: RectangleClient;
w_grid_d1: RectangleClient;
h_grid_mid: RectangleClient;
h_grid_u1: RectangleClient;
h_grid_d1: RectangleClient;
constructor(ctx: CanvasRenderingContext2D)
{
super(ctx);
let pos = new VectorInteger;
// Scores
pos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);
this.score1 = new TextNumericValue(ctx, pos, "white", c.scoreSize);
this.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, "white");
pos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);
this.score2 = new TextNumericValue(ctx, pos, "white", c.scoreSize);
this.score1.value = 0;
this.score2.value = 0;
this.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, "white");
this.scoreLeft.value = 0;
this.scoreRight.value = 0;
// Dotted Midline
pos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);
this.midLine = new Line(ctx, pos, "white", c.midLineSize, c.h-c.wallSize*2, 15);
this.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, "white", 15);
// Grid
pos.assign(0, c.h_mid);
this.w_grid_mid = new Rectangle(ctx, pos, "darkgreen", c.w, c.gridSize);
this.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, "darkgreen");
pos.assign(0, c.h/4);
this.w_grid_u1 = new Rectangle(ctx, pos, "darkgreen", c.w, c.gridSize);
this.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, "darkgreen");
pos.assign(0, c.h-c.h/4);
this.w_grid_d1 = new Rectangle(ctx, pos, "darkgreen", c.w, c.gridSize);
this.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, "darkgreen");
pos.assign(c.w_mid, 0);
this.h_grid_mid = new Rectangle(ctx, pos, "darkgreen", c.gridSize, c.h);
this.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, "darkgreen");
pos.assign(c.w/4, 0);
this.h_grid_u1 = new Rectangle(ctx, pos, "darkgreen", c.gridSize, c.h);
this.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, "darkgreen");
pos.assign(c.w-c.w/4, 0);
this.h_grid_d1 = new Rectangle(ctx, pos, "darkgreen", c.gridSize, c.h);
this.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, "darkgreen");
}
}