2016-05-12 148 views
0

我剛開始學習統一和遊戲開發。我有問題當前用戶位置的2D地圖

我想創建Map。該地圖將從服務器獲得「開始」數組,並且可能是當前地圖的img 用戶將從星到星。

的問題是:

1)讓我說回11星和IMG的curernt地圖:

enter image description here

1) - 如何,我可以告訴在哪裏現在用戶。在服務器上,我可以知道他從2到3星級旅行,我知道用戶將在4分鐘內(星級#3) - 我如何在2-3點之間放置「用戶點」,並且每秒鐘將用戶點移動到3星級附近?

什麼是創建動態地圖最好practies - 我的意思是 - 當用戶將完成對11日開始了他的發揮 - 我想返回到用戶的新地圖與新的動態啓動,他將開始新的地圖旅行

呃,對於英語語法感到抱歉。

回答

2

我怎麼能把2-3用戶點之間的開始和每秒移動用戶 點更接近3星?

使用Vector2.Lerp來做到這一點。通過第一個位置和第二個位置,然後通過0.5(一半)到時間參數它應該返回中點之間的第一和第二個位置。

一個輔助函數來做到這一點:

Vector2 getMidPoint(Vector2 userPointA, Vector2 userPointB) 
{ 
    return Vector2.Lerp(userPointA, userPointB, 0.5f); 
} 

我可以知道他的旅行從2到3星的,我知道該用戶將 有(星#3)在4分鐘

IEnumerator moveWithinTime(GameObject playerToMove, Vector2 fromPointA, Vector2 toPointB, float byTime) 
{ 
    float counter = 0; 

    while (counter < byTime) 
    { 
     counter += Time.deltaTime; 
     playerToMove.transform.position = Vector2.Lerp(fromPointA, toPointB, counter/byTime); 
     yield return null; 
    } 
} 

,並呼籲它,StartCoroutine(moveWithinTime(gameObject, gameObject.transform.position, new Vector2(10f, 10f), 4));

+0

感謝。現在的問題是......當我從服務器starrs返回 - 我需要給他們只是params的pistions和顯示在地圖場景 我的意思是我會現在返回事端like: {starName =「Name」,vector = here是在地圖上的位置參數,以及img網址 - 用於自定義視圖的星形} ?? – David

+0

@大衛我更新了我的答案。你的問題和你的評論很難理解,但我想我知道你正在努力做的一點**。我添加的新功能可以用來在一段時間內(4分鐘)將玩家從一個位置移動到另一個位置。 – Programmer

+0

謝謝。是的 - 我的語法爲:( )在我的最後一個評論中,我試着問 - 我如何知道A和B矢量 - 如果我理解正確 - 我可以從服務器返回它。我可以動態地在地圖上開始 – David