Всем доброго дня. Честно говоря, для меня уже крайнее дело обращаться за помощью на форум, но в течении двух недель я так и не смог написать класс пули. Что имеется: - Game.cpp - основной файл программы - Class.cpp - файл с классами - global.h - глобальные переменные (разрешение экрана, управление) - Player.h - Заголовочный файл для класса Player.
В файле class.cpp: Класс пули:
Code
class bullet { private: int x,y; public: bullet() { x = 0; y = 0; } void move (int dx, int dy) { x+=dx; y+=dy; DrawSprite(L"swattds.png",x-32,y-32,1); } };
Функция создания пули, находящаяся в классе Player:
1>*\class.cpp(64) : error C2552: a: инициализация не агрегированных данных с помощью списка инициализации не допускается 1> bullet: типы с закрытыми или защищенными данными-членами не являются агрегатными 1>*\class.cpp(65) : error C2352: bullet::move: недопустимый вызов нестатической функции-члена 1> *\class.cpp(27): см. объявление 'bullet::move'
Боже мой.... У тебя же члены класса пули x и y находятся в блоке private!!! А ты их пытаешься инициализировать при создании переменной a (bullet a={1,1};)
Quote (SanAV)
bullet::move(1,1);
Ты меня убиваешь... a.move(1, 1);
Ты делаешь элементарнейшие ошибки, а уже пытаешься написать игру? Кури самоучители по С++.
Quote (SanAV)
Честно говоря, для меня уже крайнее дело обращаться за помощью на форум
zadrot_666, благодарю, вынес переменные в паблик, изменил вызов функции - все работает. Видимо плохо прокурил учебник.
Quote (zadrot_666)
ибо не помешало бы почаще обращаться
Ну хорошо, раз название темы позволяет Пуля создается и нормально существует только пока нажата клавиша мыши. Чтобы пуля существовала и после ого, как отпустил кнопку мыши, надо использовать деструктор или есть другие способы? My Games: · [2D, TDS] Death Embrace.
Сообщение отредактировал SanAV - Понедельник, 18 Октября 2010, 16:25