mirror of
https://github.com/wassname/GarageServer.IO.git
synced 2026-07-14 01:00:07 +08:00
Progress: Client Updates
This commit is contained in:
+44
-20
@@ -1,46 +1,71 @@
|
||||
window.GarageServerIO = (function (window, socketio) {
|
||||
|
||||
|
||||
var io = socketio,
|
||||
|
||||
|
||||
socket = null,
|
||||
|
||||
sequenceNumber = 0,
|
||||
|
||||
|
||||
sequenceNumber = 1,
|
||||
|
||||
players = [],
|
||||
|
||||
|
||||
inputs = [],
|
||||
|
||||
updates = [],
|
||||
|
||||
|
||||
// TODO: DONE CALLBACK
|
||||
connectToGarageServer = function (path, options) {
|
||||
socket = io.connect(path + '/garageserver.io');
|
||||
registerSocketEvents();
|
||||
},
|
||||
|
||||
|
||||
registerSocketEvents = function () {
|
||||
socket.on('update', function(data) {
|
||||
if(addPlayerInput) {
|
||||
addPlayerInput(data);
|
||||
}
|
||||
updatePlayerInput(data);
|
||||
});
|
||||
socket.on('ping', function(data) {
|
||||
|
||||
});
|
||||
socket.on('removePlayer', function(id) {
|
||||
if(removePlayer) {
|
||||
removePlayer(id);
|
||||
}
|
||||
removePlayer(id);
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
updatePlayerInput = function (data) {
|
||||
var playerFound = false;
|
||||
|
||||
if(socket.id === data.id) {
|
||||
updates.push(data);
|
||||
}
|
||||
else {
|
||||
for(var i = 0; i < players.length; i ++) {
|
||||
if(players[i].id === data.id) {
|
||||
playerFound = true;
|
||||
players[i].state = data.state;
|
||||
players[i].seq = data.seq;
|
||||
}
|
||||
}
|
||||
|
||||
if(!playerFound) {
|
||||
var player = {
|
||||
id: data.id,
|
||||
state: data.state,
|
||||
seq: data.seq
|
||||
};
|
||||
players.push(player);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
addPlayerInput = function (input) {
|
||||
sequenceNumber += 1;
|
||||
inputs.push(input);
|
||||
sendPlayerInput(input);
|
||||
},
|
||||
|
||||
|
||||
sendPlayerInput = function (input) {
|
||||
socket.emit('input', { input: input, seq: sequenceNumber });
|
||||
},
|
||||
|
||||
|
||||
removePlayer = function (id) {
|
||||
for(var i = 0; i < players.length; i ++) {
|
||||
if(players[i].id === id) {
|
||||
@@ -49,11 +74,10 @@ window.GarageServerIO = (function (window, socketio) {
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
return {
|
||||
connectToGarageServer: connectToGarageServer,
|
||||
addPlayerInput: addPlayerInput,
|
||||
sendPlayerInput: sendPlayerInput
|
||||
addPlayerInput: addPlayerInput
|
||||
};
|
||||
|
||||
}) (window, io);
|
||||
@@ -18,9 +18,9 @@ GarageServer.prototype.registerSocketEvents = function (options) {
|
||||
self.onPlayerDisconnect(socket, options);
|
||||
});
|
||||
|
||||
socket.on('input', function (input) {
|
||||
console.log('garageserver.io:: socket input ' + input);
|
||||
self.onPlayerInput(socket, input, options);
|
||||
socket.on('input', function (data) {
|
||||
console.log('garageserver.io:: socket input ' + socket.id + ' ' + data.input + ' ' + data.seq);
|
||||
self.onPlayerInput(socket, data, options);
|
||||
});
|
||||
|
||||
socket.on('ping', function (data) {
|
||||
|
||||
@@ -38,7 +38,7 @@ GarageServerGame.prototype.addPlayer = function (client) {
|
||||
client: client,
|
||||
state: {},
|
||||
inputs: [],
|
||||
sequence: 0
|
||||
sequence: 1
|
||||
};
|
||||
|
||||
this.players.push(player);
|
||||
|
||||
Reference in New Issue
Block a user