WIP, tout est en chantier, très content :)
This commit is contained in:
@@ -1,64 +1,81 @@
|
||||
|
||||
import * as g from "./global.js" // temp
|
||||
import {startGame} from "./pong.js";
|
||||
import {EventTypes, EventData, EventGameUpdate} from "../shared_js/class/Event.js"
|
||||
import {pong, gc} from "./global.js"
|
||||
import * as ev from "../shared_js/class/Event.js"
|
||||
import {matchmaking, matchmakingComplete} from "./pong.js";
|
||||
import * as en from "../shared_js/enums.js"
|
||||
import { Racket } from "../shared_js/class/Rectangle.js";
|
||||
|
||||
const wsPort = 8042;
|
||||
const wsUrl = "ws://" + document.location.hostname + ":" + wsPort + "/pong";
|
||||
const socket = new WebSocket(wsUrl, "json");
|
||||
|
||||
socket.addEventListener("message", logListener);
|
||||
socket.addEventListener("message", matchmakingListener);
|
||||
|
||||
|
||||
function logListener(event: MessageEvent) {
|
||||
console.log("data: " + event.data + " | [" + Date.now() + "]");
|
||||
class ClientInfo {
|
||||
id = "";
|
||||
side: en.PlayerSide;
|
||||
racket: Racket;
|
||||
}
|
||||
|
||||
function matchmakingListener(event: MessageEvent)
|
||||
{
|
||||
console.log("matchmakingListener");
|
||||
const data: EventData = JSON.parse(event.data);
|
||||
if (data.type == EventTypes.start)
|
||||
{
|
||||
console.log("Event type = start");
|
||||
socket.removeEventListener("message", matchmakingListener);
|
||||
socket.addEventListener("message", inGameListener);
|
||||
startGame();
|
||||
export const clientInfo = new ClientInfo();
|
||||
|
||||
socket.addEventListener("open", (event) => {
|
||||
socket.send(JSON.stringify( new ev.ClientAnnounce(en.ClientRole.player, clientInfo.id) ));
|
||||
});
|
||||
|
||||
socket.addEventListener("message", logListener);
|
||||
socket.addEventListener("message", preMatchListener);
|
||||
|
||||
function logListener(this: WebSocket, event: MessageEvent) {
|
||||
console.log("%i: " + event.data, Date.now());
|
||||
}
|
||||
|
||||
function preMatchListener(this: WebSocket, event: MessageEvent) {
|
||||
const data: ev.ServerEvent = JSON.parse(event.data);
|
||||
switch (data.type) {
|
||||
case en.EventTypes.assignId:
|
||||
clientInfo.id = (<ev.EventAssignId>data).id;
|
||||
break;
|
||||
case en.EventTypes.matchmakingInProgress:
|
||||
matchmaking();
|
||||
break;
|
||||
case en.EventTypes.matchmakingComplete:
|
||||
clientInfo.side = (<ev.EventMatchmakingComplete>data).side;
|
||||
if (clientInfo.side === en.PlayerSide.left) {
|
||||
clientInfo.racket = gc.playerLeft;
|
||||
}
|
||||
else if (clientInfo.side === en.PlayerSide.right) {
|
||||
clientInfo.racket = gc.playerRight;
|
||||
}
|
||||
socket.removeEventListener("message", preMatchListener);
|
||||
socket.addEventListener("message", inGameListener);
|
||||
socket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) ));
|
||||
matchmakingComplete();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function inGameListener(event: MessageEvent)
|
||||
{
|
||||
console.log("inGameListener");
|
||||
const data: EventData = JSON.parse(event.data);
|
||||
const data: ev.ServerEvent = JSON.parse(event.data);
|
||||
switch (data.type) {
|
||||
case EventTypes.gameUpdate:
|
||||
console.log("Event type = gameUpdate");
|
||||
serverGameUpdate(data as EventGameUpdate);
|
||||
case en.EventTypes.gameUpdate:
|
||||
console.log("gameUpdate");
|
||||
serverGameUpdate(data as ev.EventGameUpdate);
|
||||
break;
|
||||
case EventTypes.pause:
|
||||
console.log("Event type = pause");
|
||||
break;
|
||||
case EventTypes.resume:
|
||||
console.log("Event type = resume");
|
||||
case en.EventTypes.matchNewRound:
|
||||
console.log("matchNewRound//WIP");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function serverGameUpdate(data: EventGameUpdate)
|
||||
function serverGameUpdate(data: ev.EventGameUpdate)
|
||||
{
|
||||
g.player1.clear();
|
||||
g.player1.pos.y = Math.floor(data.player1.y);
|
||||
g.player1.update();
|
||||
gc.playerLeft.clear();
|
||||
gc.playerLeft.pos.y = Math.floor(data.playerLeft.y);
|
||||
gc.playerLeft.update();
|
||||
|
||||
g.player2.clear();
|
||||
g.player2.pos.y = Math.floor(data.player2.y);
|
||||
g.player2.update();
|
||||
gc.playerRight.clear();
|
||||
gc.playerRight.pos.y = Math.floor(data.playerRight.y);
|
||||
gc.playerRight.update();
|
||||
}
|
||||
|
||||
// socket.addEventListener("open", (event) => {
|
||||
// console.log("socket state %i", socket.readyState);
|
||||
// });
|
||||
|
||||
export {socket}
|
||||
|
||||
Reference in New Issue
Block a user