所以我正在開發一個簡單的遊戲。邏輯流程是當兩個玩家連接到房間時,遊戲將初始化併發出3秒倒計時事件並伴隨一個按鈕。如果一個玩家點擊該按鈕,則該玩家將發出使他/她成爲遊戲主持人的事件。這個「if else」聲明在我的socket.io/Node.js環境中不起作用
該按鈕將顯示3秒鐘。如果沒有被點擊消失,服務器將隨機選擇主機。
無論按鈕是否被點擊,3秒鐘後所有的客戶端都會發出「就緒」事件。
這是我的代碼。
如果單擊該按鈕,「主機」活動將通過客戶端發出的,和我的服務器端代碼
client.on('host',function(){
var player = room.getPlayer(client.id);
player.isHost=true;
});
然後這裏是「準備」事件的服務器端。
client.on("ready", function() {
var player = room.getPlayer(client.id);
var table = room.getTable(player.tableID);
if (2>1) {
for (var i = 0; i < table.players.length; i++) {
if (table.players[i].isHost===true){
console.log("you are the host")
} else {
console.log("we are going to randomly pick a host")
}
}
}
})
現在,如果沒有玩家點擊按鈕的終端會顯示
我們將隨機挑選一臺主機
我們將隨機挑選一臺主機
我們要隨機挑選主機
我們要隨機挑選主機
否則它會像
我們將隨機挑選一臺主機
你是主機
我們將隨機挑選一臺主機
你是主機
在這個階段,只有2個客戶被允許進行遊戲,所以players.length是2.看起來if/else將與players.length同時執行?
難道這可能是因爲您正在比較布爾值與'==='比較值和類型嗎? – user82395214
'if/else'會運行'table.players.length'次 - 在你的情況下似乎是'4' –
我看不到你需要運行一個循環,每個玩家都會得到它自己的「你是主機「消息 –