我试图在cocos2d中使用DrawNode,它是Sprite的子级。正如您所期望的,Sprite的位置和旋转会影响子DrawNode的位置和旋转。

我试图将DrawNode的位置和旋转设置为不受其父对象(Sprite)的影响。

我尝试将self->addChild(self->drawNode)更改为self->getScene()->addChild(self->drawNode),这会完美地工作(如果可行),但是我收到一条错误消息,说self->getScene()返回nullptr。发生这种情况是因为尚未将其添加到任何场景。

如何相对于场景/世界定位DrawNode

例如:
this->drawNode()->drawLine(Point::ZERO, Point(0, 100), Color4F::RED)画一条直线从子图形开始。

我的目标是从窗口的右下方垂直向上画一条线。

最佳答案

如果要在将精灵添加到场景之前访问场景,则始终可以从导演访问当前运行的场景。

auto scene = Director::getInstance()->getRunningScene();
scene->addChild(draw_node);

关于c++ - 在Cocos2d中设置相对于场景的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46952137/

10-09 06:34