несовместимый тип для аргумента 2 'CGRectContainsPoint' - PullRequest
0 голосов
/ 23 мая 2011

Короче говоря ....

Я получаю несовместимый тип для аргумента 2 'CGRectContainsPoint' в сетке [x] [y] .frame часть всех 3, еслиоператоры ([rubin1 frame], grid [x] [y] .frame), ([rubin2 frame], grid [x] [y] .frame) и ([rubin3 frame], grid [x] [y] .frame).Я также пытался с [grid [x] [y] frame], но получил ту же ошибку.

Я хочу иметь возможность перемещаться по сетке rubin 1, rubin2 и rubin3, пока не отпущу их на кирпиче,Когда я отпускаю их на кирпич, я хочу, чтобы этот кирпич исчез, как и любой другой, того же типа, что и кирпич, на котором оставлен рубин (независимо от того, где он находится на сетке)

for (int y = 0; y < BRICKHEIGHT; y++)
{
    for (int x = 0; x < BRICKWIDTH; x++) 
    {


        if (CGRectContainsPoint([rubin1 frame], grid[x][y].frame)) {

            if(grid[x][y].tag == 1){

                ruby--;
                rubin1.alpha = 0;
                grid[x][y].alpha = 0;
                [self PlayerScore: x y: y];

            }
            else if(grid[x][y].tag == 2){

                ruby--;
                rubin1.alpha = 0;
                grid[x][y].alpha = 0;
                [self PlayerScore: x y: y];

            }
            else if(grid[x][y].tag == 3){

                ruby--;
                rubin1.alpha = 0;
                grid[x][y].alpha = 0;
                [self PlayerScore: x y: y];

            }
            else if(grid[x][y].tag == 4){

                ruby--;
                rubin1.alpha = 0;
                grid[x][y].alpha = 0;
                [self PlayerScore: x y: y];

            }
            else if(grid[x][y].tag == 5){

                ruby--;
                rubin1.alpha = 0;
                grid[x][y].alpha = 0;
                [self PlayerScore: x y: y];

            }
            else if(grid[x][y].tag == 6){

                ruby--;
                rubin1.alpha = 0;
                grid[x][y].alpha = 0;
                [self PlayerScore: x y: y];

            }


        } 
        if (CGRectContainsPoint([rubin2 frame], grid[x][y].frame)) {

            if(grid[x][y].tag == 1){

                ruby--;
                rubin2.alpha = 0;
                grid[x][y].alpha = 0;
                [self PlayerScore: x y: y];

            }
            else if(grid[x][y].tag == 2){

                ruby--;
                rubin2.alpha = 0;
                grid[x][y].alpha = 0;
                [self PlayerScore: x y: y];

            }
            else if(grid[x][y].tag == 3){

                ruby--;
                rubin2.alpha = 0;
                grid[x][y].alpha = 0;
                [self PlayerScore: x y: y];

            }
            else if(grid[x][y].tag == 4){

                ruby--;
                rubin2.alpha = 0;
                grid[x][y].alpha = 0;
                [self PlayerScore: x y: y];

            }
            else if(grid[x][y].tag == 5){

                ruby--;
                rubin2.alpha = 0;
                grid[x][y].alpha = 0;
                [self PlayerScore: x y: y];

            }
            else if(grid[x][y].tag == 6){

                ruby--;
                rubin2.alpha = 0;
                grid[x][y].alpha = 0;
                [self PlayerScore: x y: y];

            }

        } 
        if (CGRectContainsPoint([rubin3 frame], grid[x][y].frame)) {

            if(grid[x][y].tag == 1){

                ruby--;
                rubin3.alpha = 0;
                grid[x][y].alpha = 0;
                [self PlayerScore: x y: y];

            }
            else if(grid[x][y].tag == 2){

                ruby--;
                rubin3.alpha = 0;
                grid[x][y].alpha = 0;
                [self PlayerScore: x y: y];

            }
            else if(grid[x][y].tag == 3){

                ruby--;
                rubin3.alpha = 0;
                grid[x][y].alpha = 0;
                [self PlayerScore: x y: y];

            }
            else if(grid[x][y].tag == 4){

                ruby--;
                rubin3.alpha = 0;
                grid[x][y].alpha = 0;
                [self PlayerScore: x y: y];

            }
            else if(grid[x][y].tag == 5){

                ruby--;
                rubin3.alpha = 0;
                grid[x][y].alpha = 0;
                [self PlayerScore: x y: y];

            }
            else if(grid[x][y].tag == 6){

                ruby--;
                rubin3.alpha = 0;
                grid[x][y].alpha = 0;





            }
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 23 мая 2011

вы должны использовать как это. Пример:

UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:touch.view];

if(CGRectContainsPoint(myimage.frame, location) == 0){
//always end up here
}
0 голосов
/ 23 мая 2011

Ожидается точка в качестве второго аргумента, а не фрейм CGRect. Попробуйте grid [x] [y] .frame.origin. Исходная точка дает вам верхний правый угол рамки CGRect и .size ширина / высота CGRect.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...