LE MUUUUULTI MAAAAAAARCHE ENFIIIIIIIN
continuous-integration/drone/push Build is failing Details

MultiplayerGame
Vincent ASTOLFI 2 years ago
parent 4e6e157abf
commit 5ae4d2bdc1

@ -6,8 +6,8 @@ class Game {
this.player1 = id;
this.player2 = id2;
this.players = {};
this.players[id] = {name: username.toString(), pos: [64, 64]};
this.players[id2] = {name: username2.toString(), pos: [64, 64]};
this.players[id] = {name: username.toString(), pos: [64, 192]};
this.players[id2] = {name: username2.toString(), pos: [64, 192]};
}
}

@ -4,7 +4,7 @@ const express = require('express');
const app = express();
const http = require('http').createServer(app);
const path = require('path');
const port = 8081;
const port = 8082;
app.use(express.static('public'));

@ -3,6 +3,7 @@
<head>
<meta charset="utf-8" />
<title>Student's' Bros</title>
<script type="module" src="./js/main.js"></script>
<script type="module" src="/js/mainGame.js"></script>
</head>
<body>

@ -20,7 +20,6 @@ export default class ClientSocket{
getRoomList(){
this.sock.emit('getRooms', (response) => {
console.log(response.rooms);
PageBuilder.displayRooms(response.rooms)
})
}
@ -30,8 +29,8 @@ export default class ClientSocket{
}
receiveCord(){
this.sock.on('getEnnemyPos', function(data) {
console.log(data);
return new Promise((resolve, reject) => {
this.sock.once('getEnnemyPos', (data) => resolve(data))
})
}
}

@ -1,11 +1,8 @@
import { joinRoom } from './multiplayerMain.js';
export default class PageBuilder{
createPage(content){
}
addElement(content, parent){
static addElement(content, parent){
let newElement = document.createElement('p');
newElement.textContent = content;
parent.appendChild(newElement);

@ -12,35 +12,38 @@ const context = canvas.getContext('2d');
console.log('Welcome in game');
Promise.all([
createPlayer(),
loadLevel('1-1'),
])
.then(([player, level]) => {
Promise.all([
createPlayer(),
createPlayer(),
loadLevel('1-1'),
])
.then(([player, player2, level]) => {
const camera = new Camera();
window.camera = camera;
player.pos.set(64, 64);
game.pos.set(64, 64);
player2.pos.set(64,64);
level.comp.layers.push(createCollisionLayer(level), createCameraLayer(camera));
level.entities.add(player);
level.entities.add(player2);
const input = setupKeyboard(player);
input.listenTo(window);
const timer = new Timer(1 / 60);
timer.update = function update(deltaTime) {
level.update(deltaTime);
if(game.isMulti && player.pos != game.pos){
socket.sendPos(player.pos);
game.pos = player.pos;
}
socket.receiveCord();
level.update(deltaTime)
level.comp.draw(context, camera);
if(game.isMulti){
socket.sendPos(player.pos);
socket.receiveCord().then(function(result) {
player2.pos.set(result['x'], result['y']);
})
}
camera.pos.x = 0
if (player.pos.x > camera.size.x / 2) {
camera.pos.x = player.pos.x - camera.size.x / 2;

@ -22,7 +22,7 @@ const onCreateRoom = function (event){
const username = document.querySelector('#username');
let usernameValue = username.value;
socket.sendPlayerData(usernameValue);
socket.sendPlayerData(usernameValue, roomId);
document.getElementById('user-card').remove();
document.getElementById('match-making').style.display = 'block';

@ -43,11 +43,23 @@ io.on('connection', (socket) => {
})
socket.on('pos', function(data) {
let ennemyPlayer = getEnnemyPlayer(socket.id);
//console.log(data)
io.to(socket.id).emit('getEnnemyPos', data);
io.to(ennemyPlayer).emit('getEnnemyPos', data);
})
});
function getEnnemyPlayer(id){
for(let game in games){
if(games[game].player1 == id){
return games[game].player2;
}
if(games[game].player2 == id){
return games[game].player1;
}
}
}
function matchMaker(socketId) {
if(matchmaking.length != 0 ){
let game = new Game(

Loading…
Cancel
Save