我成功地在 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;
}
现在我想在圈区内反弹球,我该怎么做?
答案 0 :(得分:2)
好吧我们假设你的画面在200 x 200像素。 所以你的中心圈在100,100
您可以像这样计算距此点的距离:
dist = sqrt((x-100)^2+(y-100)^2)
当此数字为100或更大时,您需要改变方向。
一旦你拥有了这个,你将不得不引入一个方向向量并找出如何偏转一个圆形物体,但我会让你先去看看。
答案 1 :(得分:0)
将中心的x和y绑定为距离圆周最多radius
距离(其中radius
是球的半径)。这应该是非常简单的几何形状。