0

私はコードを持っていますが、このコードにはエラーがあり、なぜこのエラーが発生するのかわかりません。このコードを入れたのは、ボールが画面の境界線にぶつからないようにするためです。あなたは私のコードを見ることができます:

CGPoint ballCenter = ball.center;
CGRect ballRect = CGRectMake(50, 73, 50, 50); // an arbitrary location for the ball, you would normally use the frame property of the ball here
CGRect s = [UIScreen mainScreen].bounds;
CGRect adjustedScreenRect = CGRectMake(s.x-50   // take the ball's (width or height) and divide it by two to get the distance to the center. Then multiply it by two and subtract from the appropriate dimension(x offset (width), y offset (height), width (width), height (height)). 
BOOL isOnScreen = CGRectContainsPoint(adjutedScreenRect, ballCenter);
// do whatever with the BOOL from the above line...

この行にエラーがあります:

CGRect adjustedScreenRect = CGRectMake(s.x-50   // take the ball's (width or height) and divide it by two to get the distance to the center. Then multiply it by two and subtract from the appropriate dimension(x offset (width), y offset (height), width (width), height (height)). 
BOOL isOnScreen = CGRectContainsPoint(adjutedScreenRect, ballCenter);

また、エラーは「structCGRectに「x」という名前のメンバーがありません」です。

あなたの助けをありがとう

答えはCGRect adjustedScreenRect = CGRectMake(s.origin.x-50
BOOL isOnScreen = CGRectContainsPoint(adjutedScreenRect, ballCenter);

しかし、BOOLでエラーExpected)があります。

手伝って頂けますか

4

1 に答える 1

5

私はあなたが意味すると思いますs.origin.x、ではありませんs.x。CGRectはCGPointとCGSizeの構造体であるため、構造体のどの部分に最初にアクセスするかを指定しないと、CGRectのx値に直接アクセスすることはできません。

編集:

CGRectの括弧を実際に閉じたり、4つの引数すべてを満たしたりしたことはありません。これを試して:

CGRectMake(s.origin.x-50, s.origin.y, width,height);
于 2012-04-22T18:49:54.703 に答える