2012-07-21 50 views
0

我做一個在線的HTML5遊戲,像blobby凌空(兩個果凍打排球)。我有一個websocket服務器上的PHP。遊戲以50 fps運行。這是一個如何工作的例子:我按下右箭頭按鈕,我的客戶端將moveForward標誌設置爲true並將消息發送到服務器。服務器將消息傳輸到另一個客戶端,該客戶端處理它。當客戶端處理keyup時,它執行同樣的操作,但將moveForward標誌設置爲false。 問題是服務器花費一些時間將消息傳輸到客戶端,所以當keyup事件觸發時,果凍在一個客戶端立即停止,但仍在另一個客戶端上移動,並在一秒鐘內停止。任何使它更同步的方法?服務器遊戲像blobby凌空

回答

0

您可能想嘗試在遊戲中省略服務器,並使其成爲瀏覽器之間的點對點通信。

我沒有這方面的個人經驗,所以我可以給你的最好的鏈接是this question。似乎對WebRTC的支持最近已被添加到大多數瀏覽器中。

+0

是的,對WebRTC的支持已被添加到瀏覽器,但現在它沒有數據通道。他們會很快添加它,這正是我需要的。 – soin08 2012-07-22 18:26:05

+0

很高興我能幫到你。一旦你使用它,如果你在這裏寫下它對你的工作方式會很棒。 – voidengine 2012-07-23 08:03:40

0

而不是傳輸的動作,你可以傳輸的位置,會更準確,但仍然會有一個小滯後,我猜。

+1

WebRTC DataChannel已實施到Chrome Canary。我已經學會了如何設置p2p連接,下一步是將所有代碼添加到遊戲中 - 例行工作。 – soin08 2013-01-25 00:47:45