Как создать конечный экран, когда два изображения сталкиваются? - PullRequest
0 голосов
/ 30 апреля 2011

как создать конечный экран при столкновении двух изображений. Я делаю приложение с клюшкой, а ты двигаешься с очень чувствительным акцентомом. Поэтому, если он попадет в эти пики, (UIImages) он сгенерирует конечный экран. Как заставить приложение обнаруживать это столкновение, а затем генерировать конечный экран.

Ответы [ 2 ]

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

Тот факт, что вы не объявляли какие-либо правила, не имеет значения. Вам нужны трюки для обнаружения столкновений. Я предполагаю, что у вас по крайней мере есть координаты x и y для крупье, и вы должны иметь некоторое представление о его высоте и ширине. Судя по названию вопроса, кажется, что вы используете изображения для рисования объектов, которые вы хотите проверить на столкновение, поэтому вы должны знать высоту и ширину изображений, которые вы используете. Если у вас нет этой информации, вы не можете нарисовать объекты в нужном месте и, конечно, не можете проверить наличие столкновений.

Вы, в основном, хотите использовать те же риты, которые используете для рисования объектов.

Некоторые примеры кода:

Если ваши координаты указывают на середину крупье, вы бы использовали что-то вроде следующего:

if (CGRectIntersectsRect(CGRectMake(stickman.x-stickman.width/2,
                                    stickman.y-stickman.height/2,
                                    stickman.width,
                                    stickman.height),
                         CGRectMake(spikes.x-spikes.width/2,
                                    spikes.y-spikes.height/2,
                                    spikes.width,
                                    spikes.height))) {
    // Do whatever it is you need to do. For instance:
    [self showEndScreen];
}

Если бы ваши координаты указывали на верхний левый угол вашего крупье, вы бы использовали:

if (CGRectIntersectsRect(CGRectMake(stickman.x,
                                    stickman.y,
                                    stickman.width,
                                    stickman.height),
                         CGRectMake(spikes.x,
                                    spikes.y,
                                    spikes.width,
                                    spikes.height))) {
    // Do whatever it is you need to do. For instance:
    [self showEndScreen];
}

Если бы я мог дать вам предложение, я бы предложил сохранить координаты и размеры в CGRect, чтобы вам не приходилось создавать новый CGRect каждый раз, когда вы проверяете столкновение.

0 голосов
/ 30 апреля 2011

Я уверен, что вы знаете прямоугольник двух изображений, потому что вам нужно нарисовать их, чтобы вы могли использовать

bool CGRectIntersectsRect (
   CGRect rect1,
   CGRect rect2
);

Возвращает ДА, если две линии имеют общую точку

...