minor refactoring

This commit is contained in:
LuckyLaszlo
2022-12-08 07:35:20 +01:00
parent 75925b5f84
commit c88a6145eb
21 changed files with 70 additions and 129 deletions

View File

@@ -1,7 +1,7 @@
import * as c from ".././constants.js" import * as c from ".././constants.js"
class GameArea { export class GameArea {
keys: string[] = []; keys: string[] = [];
handleInputInterval: number = 0; handleInputInterval: number = 0;
gameLoopInterval: number = 0; gameLoopInterval: number = 0;
@@ -34,5 +34,3 @@ class GameArea {
this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
} }
} }
export {GameArea}

View File

@@ -62,8 +62,7 @@ class GameComponentsExtensionForClient extends GameComponents {
} }
} }
export class GameComponentsClient extends GameComponentsExtensionForClient {
class GameComponentsClient extends GameComponentsExtensionForClient {
midLine: Line; midLine: Line;
scoreLeft: TextNumericValue; scoreLeft: TextNumericValue;
scoreRight: TextNumericValue; scoreRight: TextNumericValue;
@@ -114,5 +113,3 @@ class GameComponentsClient extends GameComponentsExtensionForClient {
this.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, "darkgreen"); this.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, "darkgreen");
} }
} }
export {GameComponentsClient}

View File

@@ -2,7 +2,7 @@
import * as en from "../../shared_js/enums.js" import * as en from "../../shared_js/enums.js"
import * as ev from "../../shared_js/class/Event.js" import * as ev from "../../shared_js/class/Event.js"
class InputHistory { export class InputHistory {
input: en.InputEnum; input: en.InputEnum;
id: number; id: number;
deltaTime: number; deltaTime: number;
@@ -12,5 +12,3 @@ class InputHistory {
this.deltaTime = deltaTime; this.deltaTime = deltaTime;
} }
} }
export {InputHistory}

View File

@@ -17,7 +17,7 @@ function clearRectangle(this: RectangleClient, pos?: VectorInteger) {
this.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height); this.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);
} }
class RectangleClient extends Rectangle implements GraphicComponent { export class RectangleClient extends Rectangle implements GraphicComponent {
ctx: CanvasRenderingContext2D; ctx: CanvasRenderingContext2D;
color: string; color: string;
update: () => void; update: () => void;
@@ -31,19 +31,9 @@ class RectangleClient extends Rectangle implements GraphicComponent {
this.update = updateRectangle; this.update = updateRectangle;
this.clear = clearRectangle; this.clear = clearRectangle;
} }
// update() {
// this.ctx.fillStyle = this.color;
// this.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);
// }
// clear(pos?: VectorInteger) {
// if (pos)
// this.ctx.clearRect(pos.x, pos.y, this.width, this.height);
// else
// this.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);
// }
} }
class MovingRectangleClient extends MovingRectangle implements GraphicComponent { export class MovingRectangleClient extends MovingRectangle implements GraphicComponent {
ctx: CanvasRenderingContext2D; ctx: CanvasRenderingContext2D;
color: string; color: string;
update: () => void; update: () => void;
@@ -59,7 +49,7 @@ class MovingRectangleClient extends MovingRectangle implements GraphicComponent
} }
} }
class RacketClient extends Racket implements GraphicComponent { export class RacketClient extends Racket implements GraphicComponent {
ctx: CanvasRenderingContext2D; ctx: CanvasRenderingContext2D;
color: string; color: string;
update: () => void; update: () => void;
@@ -75,7 +65,7 @@ class RacketClient extends Racket implements GraphicComponent {
} }
} }
class BallClient extends Ball implements GraphicComponent { export class BallClient extends Ball implements GraphicComponent {
ctx: CanvasRenderingContext2D; ctx: CanvasRenderingContext2D;
color: string; color: string;
update: () => void; update: () => void;
@@ -93,10 +83,6 @@ class BallClient extends Ball implements GraphicComponent {
this._bounceAlgo(collider); this._bounceAlgo(collider);
soundPongArr[ Math.floor(random(0, soundPongArr.length)) ].play(); soundPongArr[ Math.floor(random(0, soundPongArr.length)) ].play();
} }
/* protected _bounceRacket(collider: Racket) {
this._bounceRacketAlgo(collider);
soundRoblox.play();
} */
} }
function updateLine(this: Line) { function updateLine(this: Line) {
@@ -105,17 +91,20 @@ function updateLine(this: Line) {
let i = 0; let i = 0;
while (i < this.segmentCount) while (i < this.segmentCount)
{ {
// for Horizontal Line /* Horizontal Line */
// pos.y = this.pos.y; // pos.y = this.pos.y;
// pos.x = this.pos.x + this.segmentWidth * i; // pos.x = this.pos.x + this.segmentWidth * i;
/* Vertical Line */
pos.x = this.pos.x; pos.x = this.pos.x;
pos.y = this.pos.y + this.segmentHeight * i; pos.y = this.pos.y + this.segmentHeight * i;
this.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight); this.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);
i += 2; i += 2;
} }
} }
class Line extends RectangleClient { export class Line extends RectangleClient {
gapeCount: number = 0; gapeCount: number = 0;
segmentCount: number; segmentCount: number;
segmentWidth: number; segmentWidth: number;
@@ -129,13 +118,12 @@ class Line extends RectangleClient {
this.gapeCount = gapeCount; this.gapeCount = gapeCount;
this.segmentCount = this.gapeCount * 2 + 1; this.segmentCount = this.gapeCount * 2 + 1;
/* Vertical Line */
this.segmentWidth = this.width; this.segmentWidth = this.width;
this.segmentHeight = this.height / this.segmentCount; this.segmentHeight = this.height / this.segmentCount;
// for Horizontal Line /* Horizontal Line */
// this.segmentWidth = this.width / this.segmentCount; // this.segmentWidth = this.width / this.segmentCount;
// this.segmentHeight = this.height; // this.segmentHeight = this.height;
} }
} }
export {RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line}

View File

@@ -3,7 +3,7 @@ import { Vector, VectorInteger } from "../../shared_js/class/Vector.js";
import { Component } from "../../shared_js/class/interface.js"; import { Component } from "../../shared_js/class/interface.js";
// conflict with Text // conflict with Text
class TextElem implements Component { export class TextElem implements Component {
ctx: CanvasRenderingContext2D; ctx: CanvasRenderingContext2D;
pos: VectorInteger; pos: VectorInteger;
color: string; color: string;
@@ -39,7 +39,7 @@ class TextElem implements Component {
} }
} }
class TextNumericValue extends TextElem { export class TextNumericValue extends TextElem {
private _value: number = 0; private _value: number = 0;
constructor(pos: VectorInteger, size: number, constructor(pos: VectorInteger, size: number,
ctx: CanvasRenderingContext2D, color: string, font?: string) ctx: CanvasRenderingContext2D, color: string, font?: string)
@@ -54,5 +54,3 @@ class TextNumericValue extends TextElem {
this.text = v.toString(); this.text = v.toString();
} }
} }
export {TextElem, TextNumericValue}

View File

@@ -1,10 +1,8 @@
import { pong, gc } from "./global.js" import { pong, gc } from "./global.js"
import * as c from "./constants.js"
import * as en from "../shared_js/enums.js"
import { gridDisplay } from "./handleInput.js"; import { gridDisplay } from "./handleInput.js";
function drawLoop() export function drawLoop()
{ {
pong.clear(); pong.clear();
@@ -49,5 +47,3 @@ function drawGrid()
gc.h_grid_u1.update(); gc.h_grid_u1.update();
gc.h_grid_d1.update(); gc.h_grid_d1.update();
} }
export {drawLoop}

View File

@@ -8,7 +8,7 @@ let actual_time: number = Date.now();
let last_time: number; let last_time: number;
let delta_time: number; let delta_time: number;
function gameLoop() export function gameLoop()
{ {
/* last_time = actual_time; /* last_time = actual_time;
actual_time = Date.now(); actual_time = Date.now();
@@ -45,5 +45,3 @@ function opponentInterpolation(delta: number)
clientInfo.opponent.pos.y = clientInfo.opponentNextPos.y; clientInfo.opponent.pos.y = clientInfo.opponentNextPos.y;
} }
} }
export {gameLoop}

View File

@@ -20,7 +20,7 @@ const inputHistoryArr: InputHistory[] = [];
socket.send(JSON.stringify(inputState)); socket.send(JSON.stringify(inputState));
} */ } */
function handleInput() export function handleInput()
{ {
/* last_time = actual_time; /* last_time = actual_time;
actual_time = Date.now(); actual_time = Date.now();
@@ -86,7 +86,7 @@ function playerMovePrediction(delta: number, input: en.InputEnum)
racket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]); racket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);
} }
function repeatInput(lastInputId: number) export function repeatInput(lastInputId: number)
{ {
// server reconciliation // server reconciliation
let i = inputHistoryArr.findIndex((value: InputHistory) => { let i = inputHistoryArr.findIndex((value: InputHistory) => {
@@ -106,5 +106,3 @@ function repeatInput(lastInputId: number)
} }
}); });
} }
export {handleInput, repeatInput}

View File

@@ -1,7 +1,7 @@
export * from "../shared_js/utils.js" export * from "../shared_js/utils.js"
function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void) export function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)
{ {
console.log("countdown ", count); console.log("countdown ", count);
if (count > 0) { if (count > 0) {
@@ -14,5 +14,3 @@ function countdown(count: number, callback?: (count: number) => void, endCallbac
endCallback(); endCallback();
} }
} }
export {countdown}

View File

@@ -5,9 +5,9 @@ import { GameSession } from "./GameSession.js";
import * as ev from "../../shared_js/class/Event.js" import * as ev from "../../shared_js/class/Event.js"
import * as en from "../../shared_js/enums.js" import * as en from "../../shared_js/enums.js"
class Client { export class Client {
socket: WebSocket; socket: WebSocket;
id: string; // Pas indispensable si "socket" a une copie de "id" id: string; // same as "socket.id"
isAlive: boolean = true; isAlive: boolean = true;
gameSession: GameSession = null; gameSession: GameSession = null;
matchOptions: en.MatchOptions = 0; matchOptions: en.MatchOptions = 0;
@@ -17,7 +17,7 @@ class Client {
} }
} }
class ClientPlayer extends Client { export class ClientPlayer extends Client {
inputBuffer: ev.EventInput = new ev.EventInput(); inputBuffer: ev.EventInput = new ev.EventInput();
lastInputId: number = 0; lastInputId: number = 0;
racket: Racket; racket: Racket;
@@ -27,10 +27,8 @@ class ClientPlayer extends Client {
} }
} }
class ClientSpectator extends Client { // Wip, unused export class ClientSpectator extends Client { // Wip, unused
constructor(socket: WebSocket, id: string) { constructor(socket: WebSocket, id: string) {
super(socket, id); super(socket, id);
} }
} }
export {Client, ClientPlayer, ClientSpectator}

View File

@@ -1,9 +1,8 @@
import * as c from "../constants.js"
import * as en from "../../shared_js/enums.js" import * as en from "../../shared_js/enums.js"
import { GameComponents } from "../../shared_js/class/GameComponents.js"; import { GameComponents } from "../../shared_js/class/GameComponents.js";
class GameComponentsServer extends GameComponents { export class GameComponentsServer extends GameComponents {
scoreLeft: number = 0; scoreLeft: number = 0;
scoreRight: number = 0; scoreRight: number = 0;
constructor(options: en.MatchOptions) constructor(options: en.MatchOptions)
@@ -11,5 +10,3 @@ class GameComponentsServer extends GameComponents {
super(options); super(options);
} }
} }
export {GameComponentsServer}

View File

@@ -10,10 +10,11 @@ import { Ball } from "../../shared_js/class/Rectangle.js";
import { wallsMovements } from "../../shared_js/wallsMovement.js"; import { wallsMovements } from "../../shared_js/wallsMovement.js";
/* /*
Arg "s: GameSession" replace "this: GameSession" for use with setTimeout(), multiples methods of GameSession have parameter "s: GameSession".
because "this" is equal to "this: Timeout" its used with calls to setTimeout(),
because "this" is not equal to the GameSession but to "this: Timeout"
*/ */
class GameSession { export class GameSession {
id: string; // url ? id: string; // url ?
playersMap: Map<string, ClientPlayer> = new Map(); playersMap: Map<string, ClientPlayer> = new Map();
unreadyPlayersMap: Map<string, ClientPlayer> = new Map(); unreadyPlayersMap: Map<string, ClientPlayer> = new Map();
@@ -210,5 +211,3 @@ class GameSession {
}); });
} }
} }
export {GameSession}

View File

@@ -1,8 +1,6 @@
export * from "../shared_js/utils.js" export * from "../shared_js/utils.js"
function shortId(id: string): string { export function shortId(id: string): string {
return id.substring(0, id.indexOf("-")); return id.substring(0, id.indexOf("-"));
} }
export {shortId}

View File

@@ -2,14 +2,14 @@
import * as en from "../enums.js" import * as en from "../enums.js"
/* From Server */ /* From Server */
class ServerEvent { export class ServerEvent {
type: en.EventTypes; type: en.EventTypes;
constructor(type: en.EventTypes = 0) { constructor(type: en.EventTypes = 0) {
this.type = type; this.type = type;
} }
} }
class EventAssignId extends ServerEvent { export class EventAssignId extends ServerEvent {
id: string; id: string;
constructor(id: string) { constructor(id: string) {
super(en.EventTypes.assignId); super(en.EventTypes.assignId);
@@ -17,7 +17,7 @@ class EventAssignId extends ServerEvent {
} }
} }
class EventMatchmakingComplete extends ServerEvent { export class EventMatchmakingComplete extends ServerEvent {
side: en.PlayerSide; side: en.PlayerSide;
constructor(side: en.PlayerSide) { constructor(side: en.PlayerSide) {
super(en.EventTypes.matchmakingComplete); super(en.EventTypes.matchmakingComplete);
@@ -25,7 +25,7 @@ class EventMatchmakingComplete extends ServerEvent {
} }
} }
class EventGameUpdate extends ServerEvent { export class EventGameUpdate extends ServerEvent {
playerLeft = { playerLeft = {
y: 0 y: 0
}; };
@@ -51,7 +51,7 @@ class EventGameUpdate extends ServerEvent {
} }
} }
class EventScoreUpdate extends ServerEvent { export class EventScoreUpdate extends ServerEvent {
scoreLeft: number; scoreLeft: number;
scoreRight: number; scoreRight: number;
constructor(scoreLeft: number, scoreRight: number) { constructor(scoreLeft: number, scoreRight: number) {
@@ -61,7 +61,7 @@ class EventScoreUpdate extends ServerEvent {
} }
} }
class EventMatchEnd extends ServerEvent { export class EventMatchEnd extends ServerEvent {
winner: en.PlayerSide; winner: en.PlayerSide;
forfeit: boolean; forfeit: boolean;
constructor(winner: en.PlayerSide, forfeit = false) { constructor(winner: en.PlayerSide, forfeit = false) {
@@ -73,14 +73,14 @@ class EventMatchEnd extends ServerEvent {
/* From Client */ /* From Client */
class ClientEvent { export class ClientEvent {
type: en.EventTypes; // readonly ? type: en.EventTypes; // readonly ?
constructor(type: en.EventTypes = 0) { constructor(type: en.EventTypes = 0) {
this.type = type; this.type = type;
} }
} }
class ClientAnnounce extends ClientEvent { export class ClientAnnounce extends ClientEvent {
role: en.ClientRole; role: en.ClientRole;
clientId: string; clientId: string;
matchOptions: en.MatchOptions; matchOptions: en.MatchOptions;
@@ -92,7 +92,7 @@ class ClientAnnounce extends ClientEvent {
} }
} }
class EventInput extends ClientEvent { export class EventInput extends ClientEvent {
input: en.InputEnum; input: en.InputEnum;
id: number; id: number;
constructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) { constructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {
@@ -101,9 +101,3 @@ class EventInput extends ClientEvent {
this.id = id; this.id = id;
} }
} }
export {
ServerEvent, EventAssignId, EventMatchmakingComplete,
EventGameUpdate, EventScoreUpdate, EventMatchEnd,
ClientEvent, ClientAnnounce, EventInput
}

View File

@@ -5,7 +5,7 @@ import { VectorInteger } from "./Vector.js";
import { Rectangle, MovingRectangle, Racket, Ball } from "./Rectangle.js"; import { Rectangle, MovingRectangle, Racket, Ball } from "./Rectangle.js";
import { random } from "../utils.js"; import { random } from "../utils.js";
class GameComponents { export class GameComponents {
wallTop: Rectangle | MovingRectangle; wallTop: Rectangle | MovingRectangle;
wallBottom: Rectangle | MovingRectangle; wallBottom: Rectangle | MovingRectangle;
playerLeft: Racket; playerLeft: Racket;
@@ -61,5 +61,3 @@ class GameComponents {
} }
} }
} }
export {GameComponents}

View File

@@ -3,7 +3,7 @@ import { Vector, VectorInteger } from "./Vector.js";
import { Component, Moving } from "./interface.js"; import { Component, Moving } from "./interface.js";
import * as c from "../constants.js" import * as c from "../constants.js"
class Rectangle implements Component { export class Rectangle implements Component {
pos: VectorInteger; pos: VectorInteger;
width: number; width: number;
height: number; height: number;
@@ -33,7 +33,7 @@ class Rectangle implements Component {
} }
} }
class MovingRectangle extends Rectangle implements Moving { export class MovingRectangle extends Rectangle implements Moving {
dir: Vector = new Vector(0,0); dir: Vector = new Vector(0,0);
speed: number; speed: number;
readonly baseSpeed: number; readonly baseSpeed: number;
@@ -61,7 +61,7 @@ class MovingRectangle extends Rectangle implements Moving {
} }
} }
class Racket extends MovingRectangle { export class Racket extends MovingRectangle {
constructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) { constructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {
super(pos, width, height, baseSpeed); super(pos, width, height, baseSpeed);
} }
@@ -72,13 +72,22 @@ class Racket extends MovingRectangle {
} }
} }
class Ball extends MovingRectangle { export class Ball extends MovingRectangle {
readonly speedIncrease: number; readonly speedIncrease: number;
ballInPlay: boolean = false; ballInPlay: boolean = false;
constructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) { constructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {
super(pos, size, size, baseSpeed); super(pos, size, size, baseSpeed);
this.speedIncrease = speedIncrease; this.speedIncrease = speedIncrease;
} }
moveAndBounce(delta: number, colliderArr: Rectangle[]) {
this.move(delta);
let i = colliderArr.findIndex(this.collision, this);
if (i != -1)
{
this.bounce(colliderArr[i]);
this.move(delta);
}
}
bounce(collider?: Rectangle) { bounce(collider?: Rectangle) {
this._bounceAlgo(collider); this._bounceAlgo(collider);
} }
@@ -92,15 +101,6 @@ class Ball extends MovingRectangle {
this._bounceWall(); this._bounceWall();
} }
} }
moveAndBounce(delta: number, colliderArr: Rectangle[]) {
this.move(delta);
let i = colliderArr.findIndex(this.collision, this);
if (i != -1)
{
this.bounce(colliderArr[i]);
this.move(delta);
}
}
protected _bounceWall() { // Should be enough for Wall protected _bounceWall() { // Should be enough for Wall
this.dir.y = this.dir.y * -1; this.dir.y = this.dir.y * -1;
} }
@@ -140,5 +140,3 @@ class Ball extends MovingRectangle {
// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`); // console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);
} }
} }
export {Rectangle, MovingRectangle, Racket, Ball}

View File

@@ -1,5 +1,5 @@
class Vector { export class Vector {
x: number; x: number;
y: number; y: number;
constructor(x: number = 0, y: number = 0) { constructor(x: number = 0, y: number = 0) {
@@ -16,13 +16,13 @@ class Vector {
} }
} }
class VectorInteger extends Vector { export class VectorInteger extends Vector {
// PLACEHOLDER // PLACEHOLDER
// VectorInteger with set/get dont work (No draw on the screen). Why ? // VectorInteger with set/get dont work (No draw on the screen). Why ?
} }
/* /*
class VectorInteger { export class VectorInteger {
// private _x: number = 0; // private _x: number = 0;
// private _y: number = 0; // private _y: number = 0;
// constructor(x: number = 0, y: number = 0) { // constructor(x: number = 0, y: number = 0) {
@@ -45,5 +45,3 @@ class VectorInteger {
// } // }
} }
*/ */
export {Vector, VectorInteger}

View File

@@ -1,21 +1,19 @@
import { Vector, VectorInteger } from "./Vector.js"; import { Vector, VectorInteger } from "./Vector.js";
interface Component { export interface Component {
pos: VectorInteger; pos: VectorInteger;
} }
interface GraphicComponent extends Component { export interface GraphicComponent extends Component {
ctx: CanvasRenderingContext2D; ctx: CanvasRenderingContext2D;
color: string; color: string;
update: () => void; update: () => void;
clear: (pos?: VectorInteger) => void; clear: (pos?: VectorInteger) => void;
} }
interface Moving { export interface Moving {
dir: Vector; dir: Vector;
speed: number; // pixel per second speed: number; // pixel per second
move(delta: number): void; move(delta: number): void;
} }
export {Component, GraphicComponent, Moving}

View File

@@ -1,5 +1,5 @@
enum EventTypes { export enum EventTypes {
// Class Implemented // Class Implemented
gameUpdate = 1, gameUpdate = 1,
scoreUpdate, scoreUpdate,
@@ -22,27 +22,25 @@ enum EventTypes {
} }
enum InputEnum { export enum InputEnum {
noInput = 0, noInput = 0,
up = 1, up = 1,
down, down,
} }
enum PlayerSide { export enum PlayerSide {
left = 1, left = 1,
right right
} }
enum ClientRole { export enum ClientRole {
player = 1, player = 1,
spectator spectator
} }
enum MatchOptions { export enum MatchOptions {
// binary flags, can be mixed // binary flags, can be mixed
noOption = 0b0, noOption = 0b0,
multiBalls = 1 << 0, multiBalls = 1 << 0,
movingWalls = 1 << 1 movingWalls = 1 << 1
} }
export {EventTypes, InputEnum, PlayerSide, ClientRole, MatchOptions}

View File

@@ -1,15 +1,15 @@
import { MovingRectangle } from "./class/Rectangle.js"; import { MovingRectangle } from "./class/Rectangle.js";
function random(min: number = 0, max: number = 1) { export function random(min: number = 0, max: number = 1) {
return Math.random() * (max - min) + min; return Math.random() * (max - min) + min;
} }
function sleep (ms: number) { export function sleep (ms: number) {
return new Promise((resolve) => setTimeout(resolve, ms)); return new Promise((resolve) => setTimeout(resolve, ms));
} }
function clamp(n: number, min: number, max: number) : number export function clamp(n: number, min: number, max: number) : number
{ {
if (n < min) if (n < min)
n = min; n = min;
@@ -19,9 +19,7 @@ function clamp(n: number, min: number, max: number) : number
} }
// Typescript hack, unused // Typescript hack, unused
function assertMovingRectangle(value: unknown): asserts value is MovingRectangle { export function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {
// if (value !== MovingRectangle) throw new Error("Not a MovingRectangle"); // if (value !== MovingRectangle) throw new Error("Not a MovingRectangle");
return; return;
} }
export {random, sleep, clamp, assertMovingRectangle}

View File

@@ -3,7 +3,7 @@ import * as c from "./constants.js";
import { MovingRectangle } from "../shared_js/class/Rectangle.js"; import { MovingRectangle } from "../shared_js/class/Rectangle.js";
import { GameComponents } from "./class/GameComponents.js"; import { GameComponents } from "./class/GameComponents.js";
function wallsMovements(delta: number, gc: GameComponents) export function wallsMovements(delta: number, gc: GameComponents)
{ {
const wallTop = <MovingRectangle>gc.wallTop; const wallTop = <MovingRectangle>gc.wallTop;
const wallBottom = <MovingRectangle>gc.wallBottom; const wallBottom = <MovingRectangle>gc.wallBottom;
@@ -16,5 +16,3 @@ function wallsMovements(delta: number, gc: GameComponents)
wallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]); wallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);
wallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]); wallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);
} }
export {wallsMovements}