問(wèn)題背景:
游戲中,玩家可以在場(chǎng)景某處放置一個(gè)監(jiān)控器,從而接收該處周圍的物件的廣播消息。不過(guò),當(dāng)玩家觀察區(qū)域和監(jiān)控器觀察區(qū)域出現(xiàn)重疊時(shí),在重疊區(qū)域的廣播消息就會(huì)收到兩次。
解決方案:
場(chǎng)景中有一個(gè)廣播計(jì)數(shù)器,用來(lái)記錄當(dāng)前廣播的順序。一個(gè)有效的廣播接受者(指一個(gè)玩家,或者其他廣播觀察者),保有一個(gè)最后廣播順序的變量,來(lái)記錄最后一次廣播的全局順序。當(dāng)收到廣播消息時(shí),接受者更新這個(gè)變量。碰到廣播消息的順序號(hào)小于等于最后廣播的順序號(hào)時(shí),丟棄這個(gè)廣播消息。從而過(guò)濾掉重復(fù)的消息。