下面是截圖:
2邊各控制一台飛機,在2端實時互動。
為了好看,我加入了簡單的特效,背景光環與乙個半月,我稱之為月金輪。
主體涉及到的動畫邏輯是 座標的概念與定時器。
其中子彈是靠定時器觸發的,如下面**所示,每0.8秒產生一次射擊。
月金輪相對於飛機是二級旋轉,對應座標系如下
需要將這2個座標系的旋轉合成。實現如下:
將月金輪設為背景光環的子節點。
背景光環與月金輪同時旋轉。
和前面文章不同的是,現在似乎2端似乎不太同步了。
我們看下圖
除了位置受對方控制外,我們對月金輪的特效都是兩邊各自渲染,由於2端的所分配的cpu狀況不同,必然會
產生這些差異。
這就產生了2個分支:
完全同步與關鍵同步。
我把2端簡化稱為a,b端。
相對應的投影稱之為a', b'。
完全同步:a'的所有動作絕對與a一致,終端2上的a'的每個旋轉角度都有a同步過來,這樣當終端1本身卡頓或者網路延遲時終端2上的a'表現會
很卡。關鍵同步:各自按同一套機制渲染,終端1上的a將結果同步到a',終端2上的b將結果同步到b'。
王者榮耀與本例採用的是關鍵同步,2端的動作並不是絕對一致,也無法做到絕對一致。