2012-11-11 54 views
1

我目前工作的一個項目,我需要建立一個繪製使用C++,支持DirectX &的Winsock在兩個單獨的應用程序窗口的圖形服務器/客戶端應用程序的Direct3D頂點信息。圖像應該跨服務器應用程序窗口的x軸轉換,直到它從右側的視圖開始消失。當它從視野中消失,客戶端應用程序應然後渲染圖像&在其自己的屏幕翻譯它,使圖像從服務器窗口跨越到移動客戶端窗口的印象。發送通過winsock的

我不想在這裏找到任何已完成的代碼,而是指示我如何才能通知客戶端應用程序,以便在圖像在服務器應用程序窗口中完成其翻譯週期時再次在其屏幕上呈現圖像。我想我可以做一些圍繞跟蹤g_Rectx的位置在下面的代碼,並通過通過的Winsock發送一個消息,通知客戶端應用程序爲中心開始渲染& trnslating當x座標超出視圖在服務器上的應用程序,但我不確定如何實現這一點。

目前,我有一個圖像顯示在服務器窗口&使用標準矩陣翻譯技術翻譯窗口,這一切工作正常。這是如何通知客戶端應用何時開始渲染,我不確定如何實現。

上,我怎麼能去這樣做任何想法,將不勝感激。


在此情況下,當前幫助翻譯摘錄的代碼...

  // translation matrix to move the image along x axis 
    D3DXMATRIX TranslateMatrix; 
    D3DXMatrixTranslation(&TranslateMatrix, g_RectX, g_RectY, g_RectZ); 
    g_pd3dDevice -> SetTransform(D3DTS_WORLD, &TranslateMatrix); 

    // Update the rectangle's x co-ordinate 
    g_RectX += 0.1f; 

回答

1

像你只是想傳播的對象(位置,方向,比例)的轉變,必須在我看來兩個不同的視圖,一個用於服務器,一個用於客戶端。這些視圖可以只是不同的攝像頭位置。當對象在服務器上移動時,它也會在客戶端上移動。對於您的對象和服務器的攝像頭之間的給定距離,你應該能夠計算何時會開始接觸視錐的邊緣......,並從那裏,你可以推斷出客戶所要求的攝像機位置有一個「流「從一個屏幕到另一個屏幕。

+0

感謝您的建議emartel,他們給了我一個很好的角度進行調查。 – Vault13

+0

這通常是電子游​​戲的工作原理,我們不發送頂點,只是在每個客戶端重新創建對象和場景信息。 – emartel