我想在圆的圆周上随机生成精灵,但是即使经过几个小时的研究,我也无法提出任何解决方案。
那是我到目前为止能做的

android - 在圆的圆周上添加 Sprite-LMLPHP

我已经使用了这个公式:

Sprite * pin = Sprite::create("pin.png");
pin->setPosition(Vec2((_circle->getContentSize().width/2)*(0.7/3), _circle->getContentSize().height*0.7));

Sprite * pin2 = Sprite::create("pin.png");
pin2->setPosition(Vec2((_circle->getContentSize().width/2)*(0.6/3), _circle->getContentSize().height*0.6));

Sprite * pin3 = Sprite::create("pin.png");
pin3->setPosition(Vec2((_circle->getContentSize().width/2)*(0.8/3), _circle->getContentSize().height*0.8));

Sprite * pin4 = Sprite::create("pin.png");
pin4->setPosition(Vec2((_circle->getContentSize().width/2)*(0.9/3), _circle->getContentSize().height*0.9));

Sprite * pin5 = Sprite::create("pin.png");
pin5->setPosition(Vec2((_circle->getContentSize().width/2)*(1/3), _circle->getContentSize().height));

_circle->addChild(pin);
_circle->addChild(pin2);
_circle->addChild(pin3);
_circle->addChild(pin4);
_circle->addChild(pin5);


但是我想要这样的东西(具有我在示例图像中无法做到的正确角度)

android - 在圆的圆周上添加 Sprite-LMLPHP

请提出一些精确的解决方案。谢谢你的时间!

最佳答案

基本的三角工具-sincos是您的朋友。

例:

const float circle_x = ...;
const float circle_y = ...;
const float circle_radius = ...;
const float angle = ...;
const float x = cos(angle)*circle_radius + circle_x;
const float y = sin(angle)*circle_radius + circle_y;

// Draw stuff at (x, y).

10-04 17:36