Форум программистов, компьютерный форум CyberForum.ru

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
Noobass
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100
#1

Пересечение квадратов - Программирование iOS/iPhone

17.12.2013, 18:07. Просмотров 680. Ответов 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);.
Вся соль в том, что это не работает, и после первого пересечения функция все равно считает, что пересечение состоялось еще раз, когда это не так. Подскажите, как решить проблему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 18:07     Пересечение квадратов
Посмотрите здесь:

На прямоугольнике размещено максимально возможное количество квадратов. Найти количество квадратов и площадь незанятой части прямоугольника Pascal ABC
C++ Подсчитать сумму квадратов четных и сумму квадратов нечетных чисел
Pascal ABC Подпрограммы. Найти пять чисел, чтобы сумма квадратов наибольших равнялась сумме квадратов трех остальных
Подсчитать сумму квадратов четных и сумму квадратов нечетных чисел C (СИ)
Найти пересечение двух множеств и вывести данное пересечение и кол-во элементов в нем C#
Objective-C Пересечение объектов
Найти константы аппроксимации, сумму квадратов отклонений и трехмерное отображение суммы квадратов отклонений Matlab
Есть ли четыре последовательных числа, сумма квадратов которых равна сумме квадратов трёх следующих чисел. Visual Basic
Найти количество комбинаций, в которых сумма квадратов разрядов минут равна сумме квадратов разрядов секунд Delphi
C++ Подсчитать сумму квадратов четных и сумму квадратов нечетных элементов массива
Пересечение квадратов Delphi
C# Приложение, которое строит ряд квадратов. Центр квадратов совпадает с центром экрана

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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