Позвольте мне подтвердить мое понимание здесь. Я интерпретирую ваш вопрос как mBossEarth и mRocketPod как 2 разных спрайта, и связь между ними заключается в том, что mRocketPod является дочерним спрайтом в mBossEarth, как я вижу из mBossEarth.attachChild (mRocketPod).
Я думаю, что ошибочное утверждение таково:
float points[] = mRocketPod.convertLocalToSceneCoordinates(119, 10);
1) Если у вас есть координаты сцены, к которым предполагается присоединить mRocketPod, но вы хотите установить ее как дочерний элемент mBossEarth, вы должны получить локальные координаты mBossEarth , и затем установите mRocketPod в это положение, прежде чем присоединять его к mBossEarth. Что вы сделали, так это конвертировали (119, 10) вашего спрайта mRocketPod в координаты сцены, и когда вы по ошибке примените координаты этой сцены к setPosition и прикрепите его к родителю, вы будете отстранены от предполагаемой позиции. Правильный код должен выглядеть примерно так:
mRocketPod = new RocketPod(0, 0, this.mTRRocketPod);
float points[] = mBossEarth.convertSceneToLocalCoordinates(119, 10);
mRocketPod.setPosition(points[0], points[1]);
mRocketPod.setRotation(-90);
mBossEarth.attachChild(mRocketPod);
В предлагаемом решении я конвертирую имеющиеся у вас координаты сцены в систему координат в mBossEarth. Таким образом, когда вы прикрепите дочерний элемент, он будет установлен в позицию внутри mBossEarth.
2) В маловероятном случае, когда у вас действительно есть координаты в mBossEarth, в котором вы хотите расположить mRocketPod, то есть (119, 10), вы можете фактически установить его непосредственно в конструкторе без необходимости какого-либо преобразования координат. Правильный код, вероятно, таков:
mRocketPod = new RocketPod(119, 10, this.mTRRocketPod);
mRocketPod.setRotation(-90);
mBossEarth.attachChild(mRocketPod);