J'essaie de créer un multijoueur simple avec HTML5 Canvas, JavaScript (également en utilisant la bibliothèque d'héritage simple John Resig) et Node.js avec Socket.IO. Mon code client:
var canvas = document.getElementById ('game'); var context = canvas.getContext ('2d'); var socket = new io.Socket ('127.0.0.1', {port: 8080}); var player = null; var UP = 'UP', LEFT = 'LEFT', DOWN = 'DOWN', DROIT = 'DROIT'; socket.connect (); socket.on ('connect', function () {socket.send (); console.log ('Connecté!'); joueur = nouveau joueur (50, 50); }); socket.on ('message', fonction (msg) { if (msg == 'UP') { player.moveUP (); } else if (msg == 'LEFT') { player.moveLEFT (); } else if (msg == 'DOWN') { player.moveDOWN (); } else if (msg == 'RIGHT') { player.moveRIGHT (); } autre { } }); socket.on ('déconnecter', fonction () { console.log ('Déconnecté!'); }); var Player = Class.extend ({ init: fonction (x, y) { this.x = x; this.y = y; }, setX: fonction (x) { this.x = x; }, getX: function () { renvoyer this.x; }, setY: fonction (y) { this.y = y; }, getY: function () { retourner this.y; }, draw: function () { context.clearRect (0, 0, 350, 150); context.fillRect (this.x, this.y, 15, 15); }, move: function () { this.x + = 1; this.y + = 1; }, moveUP: function () { this.y--; }, moveLEFT: function () { Cette x--; }, moveDOWN: fonction () { this.y ++; }, moveRIGHT: function () { this.x ++; } }); fonction checkKeyCode (événement) { var keyCode; if (événement == null) { keyCode = window.event.keyCode; } autre { keyCode = event.keyCode; } switch (keyCode) { cas 38: // UP player.moveUP (); socket.send (UP); Pause; cas 37: // GAUCHE player.moveLEFT (); socket.send (LEFT); Pause; cas 40: // DOWN player.moveDOWN (); socket.send (DOWN); Pause; cas 39: // DROIT player.moveRIGHT (); socket.send (RIGHT); Pause; défaut: Pause; } } mise à jour de la fonction () { player.draw (); } var FPS = 30; setInterval (fonction () { mise à jour(); player.draw (); }, 1000 / FPS); fonction init () { document.onkeydown = checkKeyCode; } init ();
Et code serveur:
var http = require ('http'), io = require ('socket.io'), buffer = new Array (), server = http.createServer (fonction (req, res) { res.writeHead (200, {'Content-Type': 'text / html'}); res.end ('Bonjour le monde
'); }); server.listen (8080); var socket = io.listen (serveur); socket.on ('connexion', fonction (client) { client.on ('message', fonction (message) { console.log (message); client.broadcast (message); }) client.on ('déconnecter', fonction () { }) });
Et quand j'exécute deux clients, je avec le premier client peut déplacer le deuxième client Rect et avec le deuxième client déplacer le premier client rect et quelque chose comme avec le troisième client peut déplacer le premier et le deuxième client rect.
Je me demande comment créer un vrai Multi-Player? quelque chose comme: Ouvrez trois clients et le premier client obtenez rect1, deuxième rect2 et dernier rect3. Le premier client ne peut déplacer que rect1, le troisième client ne peut déplacer que rect3.
Peut-être que quelqu'un a une idée? Je recherche dans Google mais je ne trouve pas de réponse.
Désolé pour ma langue anglaise, merci.