当前位置: 首页 > 知识库问答 >
问题:

精灵套件中的最佳路径玩家移动

吴浩博
2023-03-14

我在这里要做的是,让角色移动到一个位置,同时避开他前进道路上的障碍。我试着用这样的东西:

// node = character 
// position = position of touch

[self.map enumerateChildNodesWithName:@"tile" usingBlock:^(SKNode * _Nonnull tileNode, BOOL * _Nonnull stop) {        
    if( round((SDistanceBetweenPoints(node.position, tileNode.position)) < 33) ) {
        if((SDistanceBetweenPoints(tileNode.position, position) < newDistance)&&((tileNode.position.x == position.x) || (tileNode.position.y == position.y))) {
            newDistance = SDistanceBetweenPoints(tileNode.position, position);
            moveToTouch = tileNode.position;
        }
    }
}];

我的主要问题是这个角色从一半开始走路:

共有1个答案

宣意致
2023-03-14

SKSpriteNodes的协调是基于Sprite的中心,而不是像UIViews那样的左上角。考虑到这一点,尝试相同的代码。

 类似资料:
  • 移动精灵 现在你知道了如何展示精灵,但是让它们移动呢?很简单:使用Pixi的ticker。这被称为 游戏循环 。任何在游戏循环里的代码都会1秒更新60次。你可以用下面的代码让 cat 精灵以每帧1像素的速率移动。 function setup() { //Start the game loop by adding the `gameLoop` function to //Pixi's `t

  • 我正在使用Sprite Kit中的碰撞检测。它在起作用,防止我的精灵穿越路径。然而,我在didBeginContact中没有收到通知:而且我似乎无法控制物理引擎在发生碰撞时的响应。 我让各种汽车(SKSpriteNodes)使用SKAction followPath沿着以下路径行驶:as offset:oriento path:duration: 以前,如果两辆车相交,它们都会像往常一样继续行驶,

  • 我在Java和Slick2D方面有几年的经验,我正试图将一个游戏移植到libgdx,因为它是一个更好的库。然而,我有一个简单的问题在屏幕上移动精灵。这个应用编程接口一定有一些我不理解的范例。我将我的代码提炼成以下内容。它识别输入,并在我的整个实体和网络系统中运行它,无论是在服务器上还是从服务器上,但是精灵保持在同一个位置。任何帮助都会很棒。 我的create()方法: getCurrentX/Y方

  • 我正在用PyGame制作一个小游戏,相机聚焦在一个代表角色的精灵上,当按下箭头键时,地图会围绕它移动。问题是地图不动。我以前多次遇到过这个问题,我想我已经把它缩小到可能的范围,但是我不知道如何真正解决这个问题。 这是代码: 基于我过去的PyGame程序,我总是在移动被绘制到屏幕上的精灵集时遇到问题,比如我在这里所做的。即使是平庸简单的例子也会失败。我想知道的是这是为什么,我怎样才能简明扼要地画出大

  • 我是IOS开发的新手,目前在didBeginContact方法中遇到一些sprite工具包冲突问题。 如果一个碰撞的物理物体被移走了,我如何摆脱或者停止didBeginContact的运行?例:一颗子弹与两个重叠的敌人相撞。因为子弹击中第一个敌人并被摧毁,所以在第二个敌人上运行的碰撞检查抛出异常,因为子弹不再存在。 我试过检查nil和NSNULL值,但运气不好。我收到的错误代码是“线程1:EXC_

  • 最佳路径,是求解网络中两点之间阻抗最小的路经,必须按照结点的选择顺序访问网络中的结点。“阻抗最小”有多种理解,如基于单因素考虑的时间最短、费用最低、风景最好、路况最佳、过桥最少、收费站最少、经过乡村最多等。 下面以长春数据为例,计算地图中将要行走的地点间的最佳路径。其接口使用方法如下: 设置最佳路径分析参数 findPathParameter,包括交通网络分析通用参数、途径站点等; //设置网络分