2012-05-09 52 views
-2

Multuplayer遊戲socket.io - 請從字母簡單的多人在線遊戲開發與socket.io

更大的字需要如何運作自己的比賽:

  1. 用戶點擊停止,然後他們會得到一封信來創造一個比其他玩家完成更大的單詞!

  2. 當用戶cretate一個字,然後點擊「提交」按鈕,然後發送到服務器和服務器選了更大的字......尚未

  3. 這裏要允許與socket.io兩個玩家的遊戲

這裏是基本一人遊戲MOD代碼:http://jsfiddle.net/9rtFa/14/

也在遊戲中有玩家聊天beetwen實時聊天。

app.js

var app = require('express').createServer() 
var io = require('socket.io').listen(app); 

app.listen(8080); 

// routing 
app.get('/', function (req, res) { 
    res.sendfile(__dirname + '/index.html'); 
}); 

// usernames which are currently connected to the chat 
var usernames = {}; 

io.sockets.on('connection', function (socket) { 

    // when the client emits 'sendchat', this listens and executes 
    socket.on('sendchat', function (data) { 
     // we tell the client to execute 'updatechat' with 2 parameters 
     io.sockets.emit('updatechat', socket.username, data); 
    }); 

    // when the client emits 'adduser', this listens and executes 
    socket.on('adduser', function(username){ 
     // we store the username in the socket session for this client 
     socket.username = username; 
     // add the client's username to the global list 
     usernames[username] = username; 
     // echo to client they've connected 
     socket.emit('updatechat', 'SERVER', 'you have connected'); 
     // echo globally (all clients) that a person has connected 
     socket.broadcast.emit('updatechat', 'SERVER', username + ' has connected'); 
     // update the list of users in chat, client-side 
     io.sockets.emit('updateusers', usernames); 
    }); 

    // when the user disconnects.. perform this 
    socket.on('disconnect', function(){ 
     // remove the username from global usernames list 
     delete usernames[socket.username]; 
     // update list of users in chat, client-side 
     io.sockets.emit('updateusers', usernames); 
     // echo globally that this client has left 
     socket.broadcast.emit('updatechat', 'SERVER', socket.username + ' has disconnected'); 
    }); 
}); 

和index.html

<script src="/socket.io/socket.io.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> 
<script> 
    var socket = io.connect('http://localhost:8080'); 

    // on connection to server, ask for user's name with an anonymous callback 
    socket.on('connect', function(){ 
     // call the server-side function 'adduser' and send one parameter (value of prompt) 
     socket.emit('adduser', prompt("What's your name?")); 
    }); 

    // listener, whenever the server emits 'updatechat', this updates the chat body 
    socket.on('updatechat', function (username, data) { 
     $('#conversation').append('<b>'+username + ':</b> ' + data + '<br>'); 
    }); 

    // listener, whenever the server emits 'updateusers', this updates the username list 
    socket.on('updateusers', function(data) { 
     $('#users').empty(); 
     $.each(data, function(key, value) { 
      $('#users').append('<div>' + key + '</div>'); 
     }); 
    }); 

    // on load of page 
    $(function(){ 
     // when the client clicks SEND 
     $('#datasend').click(function() { 
      var message = $('#data').val(); 
      $('#data').val(''); 
      // tell server to execute 'sendchat' and send along one parameter 
      socket.emit('sendchat', message); 
     }); 

     // when the client hits ENTER on their keyboard 
     $('#data').keypress(function(e) { 
      if(e.which == 13) { 
       $(this).blur(); 
       $('#datasend').focus().click(); 
      } 
     }); 
    }); 

</script> 
<div style="float:left;width:100px;border-right:1px solid black;height:300px;padding:10px;overflow:scroll-y;"> 
    <b>USERS</b> 
    <div id="users"></div> 
</div> 
<div style="float:left;width:300px;height:250px;overflow:scroll-y;padding:10px;"> 
    <div id="conversation"></div> 
    <input id="data" style="width:200px;" /> 
    <input type="button" id="datasend" value="send" /> 
</div> 

現在我需要讓兩個玩家的遊戲與socket.io實時信 - 聊天我已經有了,但如何將IMPLEMENT socket.io插入我的遊戲 - 我從jsfiddle上面放置的代碼

請幫助瞭解socket.io遊戲開發。

我認爲這對於理解用於創建遊戲的socket.io必須是一個很好的教程。 我認爲這對很多人來說是如此的有趣...

+0

爲什麼-1爲什麼.............. –

+0

好的,謝謝,但我認爲這一定很有趣,很多人要用例子來理解socket.io是如何工作的 –

+0

不是一個真正的問題,建議你閱讀FAQ。至於你似乎在問什麼,遊戲與多用戶客戶端服務器無關。遊戲是內容,機制是一樣的,聊天服務器是一個典型的例子... –

回答

0

你的問題很難理解,所以我不完全確定你在問什麼,除了一般的建議。

我做了快速搜索,發現這個Multiplayer HTML5, Node.js, Socket.IO

可能會有所幫助?

+0

我jst想讓我的簡單遊戲多人遊戲jsfiddle.net/9rtFa/12/ –

+1

你不能只是「允許」多人遊戲。它必須被編程來處理多人互動。 – Applehat