使用对象池将子弹节点归到一个组里。但是,需要以另一个节点坐标来设置位置,另一个节点的position是世界坐标系的。不能直接给子弹这个节点设置。使用var newVec2 = monster.convertToNodeSpaceAR(this.node.position); monster是对象池的子弹。this.node是另一个获取坐标的节点,之后打算将生成对象池的脚本单独放置。可是目前获取的位置与实际位置有差别。。求问下。有没有什么办法可以忽视父节点这种关系。直接以世界坐标系来强制设置坐标。。或者。帮忙举个例子来说明一下。如何获取一个世界坐标来给一个子节点设置坐标。十分感谢。查了试了两天了毫无办法了。
不对。。返回的坐标 用到目标节点上。和待转换的坐标。屏幕显示位置有一段距离。。他们不应该是重合的吗? 而且。这个转换出来的坐标。屏幕如果划分成田字格的话。随着待转换坐标的节点移动到每一块。都位置不同。是围绕待转换节点一定距离的。我需要。他们重合在一起。
那只羊就是要获取坐标给坐标那些绿色小块节点坐标的。。羊不左右移动。只上下的话。是这样。但是羊在不同的高度。生成的绿色小块位置是有一些去别的。在屏幕中间线时大概生成的绿色小块也和羊平行。但是。在更高或更低就会错位。而且差距越来越大。。我的目的。是从对象池中生成绿色小块。获取到羊的位置。然后。绿色小块显示在羊的位置。。目前生成对象池绿色小块的脚本内容也和羊的操作脚本在一起。这样会有影响么?应该没有吧。我试过获取羊的坐标一直都是绝对坐标。
你问题描述的太复杂了,不清楚你到底是啥需求,坐标这个和对象池也没啥关系
你如果想获取羊转换在Canvas节点的坐标,那就用我那个方法getNodePos(羊Node, cc.find(‘Canvas’));
看你描述的那么乱,你可能是陷入误区了,整理下思路
绿色小块和羊在同一个父节点下吗
如果是,那让绿色小块的坐标直接等于羊坐标就行
如果不是,那就用方法,getNodePos(羊自己Node,绿色小块所在的父容器Node),得到的坐标赋值给绿色小块
// 设置节点位置到该节点位置
cc.Node.prototype.setPositionByNode = function (node) {
var nodeWordPos = node.convertToWorldSpaceAR(cc.Vec2.ZERO);
var myParentSpacePosition = this.parent.convertToNodeSpaceAR(nodeWordPos);
this.position = myParentSpacePosition;
}
用法:
绿色小块节点.setPositionByNode(羊的节点);
这样绿色小块就到羊身上了。
不是。。羊是没有任何父节点的。。而绿色小块是对象池。是有父节点的。但并没有具体节点。只是方便之后管理。我只是想生成的绿色小块显示位置和羊一样。但是具体的坐标我就不知道怎么弄。现在就是围着羊转。只有在屏幕中央那一小块生成的绿色小块是和羊重合的。其余位置。离屏幕中心越远它生成的坐标也越远。。
羊不可能没有父节点,没有父节点是不可能显示到屏幕上的。。。
反正你直接调用这个方法就行了。。
绿色小块节点.setPositionByNode(羊的节点);
绿色小块就到羊身上了。
你的提示prototype为null。。
好了。不用麻烦了。我解决了。。我代码有一块理解错了。。绿色小块不需要父节点。。我添加子节点时把绿色小块加给羊了。如果单独写个脚本就不会有什么问题。但是现在是在羊节点下。就相当于父节点是羊了。等下我看看删掉帖子吧。。麻烦你们了。也谢谢了。。
好了。不用麻烦了。我解决了。。我代码有一块理解错了。。绿色小块不需要父节点。。我添加子节点时把绿色小块加给羊了。如果单独写个脚本就不会有什么问题。但是现在是在羊节点下。就相当于父节点是羊了。等下我看看删掉帖子吧。。麻烦你们了。也谢谢了。。不过也迟早会用上的
照搬大神的代码,马上就能用了,多谢!
可是不知道什么意思,看了文档api也还是不理解,可否请教大神再指点下呢


