【问题标题】:2D map with current user position具有当前用户位置的 2D 地图
【发布时间】:2016-05-13 03:45:34
【问题描述】:

我刚刚开始学习统一和游戏开发。我有问题

我想创建地图。此地图将从服务器获取带有“starts”的数组,并且可能是当前地图的 img 用户将在星星之间穿梭。

问题是:

1) 假设我为当前地图返回 11 颗星和 img:

1)- 我如何显示用户现在在哪里。在服务器上,我可以知道他从 2 星移动到 3 星,并且我知道用户将在 4 分钟内到达(星号 3) - 我如何将“用户点”放在 2-3 开始之间,并且每秒将用户点移近 3 星?

创建动态地图的最佳实践是什么——我的意思是——当用户将在 11 号开始时完成他的游戏——我想以新的动态开始返回给用户新地图,他将开始新的地图旅行

谢谢你,对不起英语语法。

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    如何在 2-3 开始和每秒钟移动用户之间放置“用户点” 指向更接近 3 星?

    使用Vector2.Lerp 来做到这一点。传入第一个位置和第二个位置,然后将 0.5(half) 传递给 time 参数它应该返回第一个和第二个位置之间的 mid point

    执行此操作的辅助函数:

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

    我知道他从 2 到 3 星级旅行,我知道用户会 4分钟后到(星号3)

    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));

    【讨论】:

    • 谢谢。现在的问题是....当我从服务器starrs返回时 - 我需要给他们只是pistions的参数并在地图场景上显示我的意思是我现在将返回类似:{starName =“Name”,vector =这里是params for地图上的位置和 img url - 用于自定义星形视图} ??
    • @David 我更新了我的答案。你的问题和你的评论很难理解,但我想我知道你想要做什么一点点。我添加的新功能可用于在时间(4 分钟)内将玩家从一个位置移动到另一个位置。
    • 谢谢。是的 - 我对我的语法很抱歉 :( 在我的最后一条评论中,我试图问 - 我如何知道 A 和 B 向量 - 如果我理解正确 - 我可以从服务器返回它。这样我可以动态把起点放到地图上
    • 如何知道 A 和 B 向量? A 是您要移动的对象的当前位置。你可以通过gameObject.transform.position 得到它。B 是你想去的位置。所以假设物体在位置1,你想去位置2,A位置是gameObject.transform.position,B位置是你的位置2。你有责任确定2,3,4,5是什么位置,6... 是。您可以定义它们并将它们放入 Vector2[] 数组中。或者您可以像您提到的那样从网络接收它们。
    • 这些时间实际上是固定的还是只是一个例子?如果时间不固定,您可能需要一些东西来将游戏中的距离映射到地图上的距离。因此,在游戏中有一个开始和结束标记,并计算玩家在这两者之间的向量上的位置,然后在地图上设置玩家标记以适应相应星星之间的相对位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    相关资源
    最近更新 更多