Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2017, 14:38   #11
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
я же не сую
А это что?
Код:
auto itEnemy = std::remove_if(mEnemies.begin(), mEnemies.end(), IsNotActive(mEnemies));
p51x вне форума Ответить с цитированием
Старый 03.10.2017, 15:47   #12
dimaSlon
Форумчанин
 
Регистрация: 24.06.2017
Сообщений: 160
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А это что?
Код:
auto itEnemy = std::remove_if(mEnemies.begin(), mEnemies.end(), IsNotActive(mEnemies));
IsNotActive() так тоже нельзя
dimaSlon вне форума Ответить с цитированием
Старый 03.10.2017, 15:49   #13
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Правильно, нельзя. Упрощенно, вам там нужен указатель на функцию... а вы что суете? У вас что возвращает IsNotActive(mEnemies)?

P.S. Скобки уберите.
p51x вне форума Ответить с цитированием
Старый 03.10.2017, 16:00   #14
dimaSlon
Форумчанин
 
Регистрация: 24.06.2017
Сообщений: 160
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Правильно, нельзя. Упрощенно, вам там нужен указатель на функцию... а вы что суете? У вас что возвращает IsNotActive(mEnemies)?

P.S. Скобки уберите.
так когда я их убераю, оно ошибку выдает
Изображения
Тип файла: jpg Untitled.jpg (97.5 Кб, 145 просмотров)

Последний раз редактировалось dimaSlon; 03.10.2017 в 16:02.
dimaSlon вне форума Ответить с цитированием
Старый 03.10.2017, 16:09   #15
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Код:
auto itEnemy = std::remove_if(mEnemies.begin(), mEnemies.end(), IsNotActive<Enemy>);
p51x вне форума Ответить с цитированием
Старый 03.10.2017, 16:31   #16
dimaSlon
Форумчанин
 
Регистрация: 24.06.2017
Сообщений: 160
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Код:
auto itEnemy = std::remove_if(mEnemies.begin(), mEnemies.end(), IsNotActive<Enemy>);
спасибо. а тут я правильно передаю?
Код:
template <typename T1, typename T2>
bool Collide(const T1& gameObject1, const T2& gameObject2)
{
	Point topLeft1 = gameObject1.mCenter - gameObject1.mHalfSize;
	Point bottomRight1 = gameObject1.mCenter + gameObject1.mHalfSize;

	Point topLeft2 = gameObject2.mCenter - gameObject2.mHalfSize;
	Point bottomRight2 = gameObject2.mCenter + gameObject2.mHalfSize;

	return (bottomRight1.mX > topLeft2.mX) && 
		(bottomRight2.mX > topLeft1.mX) &&
		(bottomRight2.mY > topLeft1.mY) &&
		(bottomRight1.mY > topLeft2.mY);
}
Код:
void FireBall::TestCollisionVersusEnemy(GameWorld& gameWorld)
{
	for (Enemy& enemy : gameWorld.mEnemies)
	{
		if (Collide(*this, enemy)) // сюда я  правильно передаю?
		{
		{
dimaSlon вне форума Ответить с цитированием
Старый 03.10.2017, 16:37   #17
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Это же не передача, а простой вызов функции. Таки что вам компилятор на это сказал?
p51x вне форума Ответить с цитированием
Старый 03.10.2017, 16:53   #18
dimaSlon
Форумчанин
 
Регистрация: 24.06.2017
Сообщений: 160
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Это же не передача, а простой вызов функции. Таки что вам компилятор на это сказал?
я имею введу я правильно параметры в функци передаю?
*this, enemy
dimaSlon вне форума Ответить с цитированием
Старый 03.10.2017, 17:06   #19
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Если компилятор не возражает, то правильно. Что за сомнения? Но лучше переделать эту функцию Collide как советовали, сделать ее членом класса.
p51x вне форума Ответить с цитированием
Старый 03.10.2017, 17:08   #20
dimaSlon
Форумчанин
 
Регистрация: 24.06.2017
Сообщений: 160
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Если компилятор не возражает, то правильно. Что за сомнения? Но лучше переделать эту функцию Collide как советовали, сделать ее членом класса.
нет компилятор кричит
Изображения
Тип файла: jpg аваааав.jpg (109.7 Кб, 147 просмотров)
dimaSlon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа не хочет работать. Renc Visual C++ 1 19.02.2013 12:19
Программа не хочет работать OperaNeMini Софт 15 02.12.2012 16:24
Сортировка не хочет работать :( Авторитет Общие вопросы C/C++ 1 05.05.2011 21:10
Не хочет работать iif alco84 Microsoft Office Access 6 18.03.2010 09:48
Не хочет работать OpenPictureDialog guffer Общие вопросы Delphi 4 08.07.2009 20:14