Tôi đang thử tạo Nhiều người chơi đơn giản với HTML5 Canvas, JavaScript (cũng sử dụng thư viện Kế thừa đơn giản John Resig) và Node.js với Socket.IO. Mã khách hàng của tôi:
var canvas = document.getEuityById ('trò chơi'); var bối cảnh = canvas.getContext ('2d'); var socket = new io.Socket ('127.0.0.1', {port: 8080}); người chơi var = null; var LÊN = 'LÊN', TRÁI = 'TRÁI', XUỐNG = 'XUỐNG', QUYỀN = 'QUYỀN'; ổ cắm.connect (); socket.on ('kết nối', function () {socket.send (); console.log ('Đã kết nối!'); người chơi = Người chơi mới (50, 50); }); socket.on ('message', function (messenger) { if (dir == 'UP') { người chơi.moveUP (); } if if (dir == 'LEFT') { người chơi.moveLEFT (); } if if (dir == 'DOWN') { người chơi.moveDOWN (); } if if (dir == 'RIGHT') { người chơi.moveRIGHT (); } khác { } }); socket.on ('ngắt kết nối', function () { console.log ('Ngắt kết nối!'); }); var Player = Class.extend ({ init: hàm (x, y) { này.x = x; this .y = y; }, setX: hàm (x) { này.x = x; }, getX: function () { trả lại cái này.x; }, setY: hàm (y) { this .y = y; }, getY: function () { trả lại cái này }, vẽ: hàm () { bối cảnh.clearRect (0, 0, 350, 150); bối cảnh.fillRect (this.x, this.y, 15, 15); }, di chuyển: hàm () { này.x + = 1; this .y + = 1; }, moveUP: function () { Điều này y--; }, moveLEFT: function () { này.x--; }, moveDOWN: function () { this .y ++; }, moveRIGHT: function () { này.x ++; } }); chức năng checkKeyCode (sự kiện) { var keyCode; if (sự kiện == null) { keyCode = window.event.keyCode; } khác { keyCode = event.keyCode; } chuyển đổi (keyCode) { trường hợp 38: // LÊN người chơi.moveUP (); socket.send (LÊN); phá vỡ; trường hợp 37: // TRÁI người chơi.moveLEFT (); socket.send (TRÁI); phá vỡ; trường hợp 40: // XUỐNG người chơi.moveDOWN (); socket.send (XUỐNG); phá vỡ; trường hợp 39: // QUYỀN người chơi.moveRIGHT (); socket.send (QUYỀN); phá vỡ; mặc định: phá vỡ; } } cập nhật hàm () { player.draw (); } var FPS = 30; setInterval (hàm () { cập nhật (); player.draw (); }, 1000 / FPS); hàm init () { document.onkeydown = checkKeyCode; } trong đó();
Và mã máy chủ:
var http = yêu cầu ('http'), io = Yêu cầu ('socket.io'), bộ đệm = mảng mới (), máy chủ = http.createServer (chức năng (req, res) { res.writeHead (200, {'Kiểu nội dung': 'text / html'}); gửi lại ('Chào thế giới
'); }); máy chủ.listen (8080); var socket = io.listen (máy chủ); socket.on ('kết nối', chức năng (máy khách) { client.on ('tin nhắn', chức năng (tin nhắn) { console.log (tin nhắn); client.broadcast (tin nhắn); }) client.on ('ngắt kết nối', function () { }) });
Và khi tôi chạy hai máy khách I với máy khách thứ nhất có thể di chuyển máy khách thứ hai Rect và với máy khách thứ hai di chuyển máy khách thứ nhất và thứ gì đó giống như với máy khách thứ ba có thể di chuyển máy khách thứ nhất và thứ hai.
Tôi có câu hỏi làm thế nào để tạo nhiều người chơi thực sự? đại loại như: Mở ba máy khách và máy khách đầu tiên nhận được orth1, thứ hai orth2 và orth3 cuối cùng. Khách hàng đầu tiên chỉ có thể di chuyển orth1, khách hàng thứ ba chỉ có thể di chuyển orth3.
Có lẽ ai cũng có ý kiến? Tôi tìm kiếm trong Google nhưng không tìm thấy câu trả lời.
Xin lỗi vì tiếng Anh của tôi, Cảm ơn.