2

我成功地在UIView中弹跳球。

我在里面创建了球类我正在使用以下代码来移动球。

    self.center=CGPointMake(self.center.x + mXSpeed, self.center.y + mYSpeed);
if (!CGRectContainsRect(self.superview.bounds, self.frame))
{

    if (self.frame.origin.x<self.superview.bounds.origin.x)
        mXSpeed=abs(mXSpeed);
    if (self.frame.origin.x>self.superview.bounds.size.width-self.frame.size.width)         
        mXSpeed=-abs(mXSpeed);  
    if (self.frame.origin.y<0)//self.superview.frame.origin.y)          
        mYSpeed=abs(mYSpeed);
    if (self.frame.origin.y>self.superview.bounds.size.height-self.frame.size.height)           
        mYSpeed=-abs(mYSpeed);

    //mYSpeed=-mYSpeed;
}

现在我想在圆圈区域内反弹球,我该怎么做?

4

2 回答 2

2

好的,假设您的帧为 200 x 200 像素。所以你的圆心在 100,100

您可以像这样计算距该点的距离:

dist = sqrt((x-100)^2+(y-100)^2)

当这个数字是 100 或更大时,你需要改变你的方向。

一旦你有了这个,你将不得不引入一个方向向量并弄清楚如何偏转圆形物体,但我会让你先试一试。

于 2013-03-29T06:43:56.787 回答
0

只需将中心的 x 和 y 绑定到与圆周的最大radius距离(radius球的半径在哪里)。它应该是非常简单的几何图形。

于 2013-03-29T06:43:49.200 回答