Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование iOS/iPhone
Войти
Регистрация
Восстановить пароль
 
Noobass
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100
1

Пересечение квадратов

17.12.2013, 18:07. Просмотров 747. Ответов 0
Метки нет (Все метки)

Здравствуйте, дорогие друзья! У меня тут возникла проблемы с пересечениями квадратов спрайтов.
Дело вот в чем. Функция, в которой проверяется пересечение, вызывается в скидле для каждого отдельного объекта.
Код выглядит так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void GameLayer::checkCollisions()   {
    CCRect rectOfHero = CCRectMake(hero->getPositionX() - hero->getContentSize().width/2,
                                   hero->getPositionY() - hero->getContentSize().height/2,
                                   hero->widthHero,
                                   hero->heightHero);
    CCRect rectOfSymbol;
    if(movingSymbol != NULL)    {
        rectOfSymbol = CCRectMake(movingSymbol->getPositionX() - movingSymbol->getContentSize().width/2,
                                  movingSymbol->getPositionY() - movingSymbol->getContentSize().height/2,
                                  movingSymbol->widthSymbol,
                                  movingSymbol->heightSymbol);
    }
   
   
    //check collision Hero and Symbol. If those two objects collided, program makes a decision
    if(rectOfSymbol.intersectsRect(rectOfHero))
    {
        if(numberSymbol == movingSymbol->getIdSymbol())  {
            rectOfHero = CCRectMake(0, 0, 0, 0);
            movingSymbol->removeFromParentAndCleanup(YES);
            currentSymbol++;
            this->getNumberSymbol();
        }   else    {
            CCDirector::sharedDirector()->pause();
        }
    }
}
Проблема в том, что функция вызывается постоянно через скидл, и когда пересечение случается, нужно обнулять один из квадратов, чтобы в след шаге этого не случилось. Именно поэтому у меня есть строка rectOfHero = CCRectMake(0, 0, 0, 0);.
Вся соль в том, что это не работает, и после первого пересечения функция все равно считает, что пересечение состоялось еще раз, когда это не так. Подскажите, как решить проблему?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 18:07
Ответы с готовыми решениями:

Пересечение объектов
Как узнать пересекаются ли 2 объекта типа SKSpriteNode?

Пересечение квадратов
На плоскости иметься N квадратов со сторонами параллельными осям координат...

Найти пересечение двух множеств и вывести данное пересечение и кол-во элементов в нем
Здравствуйте, помогите, пожалуйста, дорешать задачу. Условие: найти...

Пересечение двух прямых и проверка на пересечение
Доброго времени суток слизал функцию проверки...

Приложение, которое строит ряд квадратов. Центр квадратов совпадает с центром экрана
Напишите приложение, которое строит ряд квадратов. Центр квадратов совпадает...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2013, 18:07

Подпрограммы. Найти пять чисел, чтобы сумма квадратов наибольших равнялась сумме квадратов трех остальных
Попытайтесь найти пять идущих подряд целых чисел, таких, чтобы сумма квадратов...

Есть ли четыре последовательных числа, сумма квадратов которых равна сумме квадратов трёх следующих чисел.
Определить, существуют ли такие четыре последовательных натуральных числа,...

Найти количество комбинаций, в которых сумма квадратов разрядов минут равна сумме квадратов разрядов секунд
.Секундомер отмерял 6458 секунд. Найти количество комбинаций, в которых сумма...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru