-
-
Save rosancoderian/797a0a03d1c4456b96052c1b16725466 to your computer and use it in GitHub Desktop.
socket.io multiplayer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var express = require('express') | |
| var browserify = require('browserify') | |
| var app = express.createServer() | |
| app.get('/', function(req, res){ | |
| res.render('index', { title: 'My Site' }) | |
| }) | |
| app.get('/test', function(req, res){ | |
| res.render('test', { title: 'My Site' }) | |
| }) | |
| app.configure(function(){ | |
| app.use(express.methodOverride()) | |
| app.use(express.bodyParser()) | |
| app.use(app.router) | |
| app.use(express.static(__dirname + '/public')) | |
| app.use(express.errorHandler({ dumpExceptions: true, showStack: true })) | |
| // browserify | |
| var bundle = browserify({ | |
| entry: __dirname + '/public/assets/scripts/entry.js', | |
| watch: true, | |
| debug: true, | |
| require: { | |
| jquery: 'br-jquery' | |
| } | |
| }) | |
| app.use(bundle) | |
| // ejs views | |
| app.set('view engine', 'ejs') | |
| app.set('view options', { | |
| layout: false | |
| }) | |
| }) | |
| var players = { | |
| } | |
| // socket.io | |
| io = require('socket.io').listen(app) | |
| io.sockets.on('connection', function (socket) { | |
| socket.on('init', function (data) { | |
| socket.emit('init', { | |
| player: { | |
| x: 400, | |
| y: 400 | |
| }, | |
| players: players, | |
| levelName: 'level14.nw' | |
| }); | |
| }); | |
| socket.on('move', function (data) { | |
| //console.log('player moved') | |
| //console.log(data); | |
| players[data.player.id] = { | |
| x: data.player.x, | |
| y: data.player.y, | |
| ani: data.player.ani, | |
| aniFrame: 0, | |
| direction: data.player.direction, | |
| chat: data.player.chat, | |
| levelName: data.player.levelName | |
| } | |
| socket.volatile.broadcast.emit('update', { | |
| player: { | |
| id: data.player.id, | |
| x: data.player.x, | |
| y: data.player.y, | |
| ani: data.player.ani, | |
| direction: data.player.direction, | |
| chat: data.player.chat, | |
| levelName: data.player.levelName | |
| } | |
| }) | |
| }); | |
| }); | |
| // listen on port 3000 | |
| app.listen(3000) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment