Результаты поиска
| |
Renus | Дата: Среда, 03 Ноября 2010, 11:22 | Сообщение # 41 | Тема: Проблема с производным классом |
почетный гость
Сейчас нет на сайте
| Всем привет. Щас спрошу вопрос, может я совсем туплю конечно, но что то с утра не додумывается... Есть список в который занесены все объекты, список хранит указатели на переменные собственного типа CObject, CObject в свою очередь базовый класс для всех объектов остальных игровых классов(CPlayer, CBullet и т.д.) Собсно вопрос в том как вытянуть значение внутренней переменной производного класса, пули например. Вот небольшой код для попадания пули по врагу: Code CrossIter=Obj_List.begin(); CObject* pObject; while(CrossIter!=Obj_List.end()) { pObject=*CrossIter; if (pObject->type=="bullet") { if (CheckColl(cbox, pObject->cbox)==true) { armor-=pObject->damage; // Вот тут надо получить доступ как к CBullet, а не CObject pObject->kill=true; } } CrossIter++; } Извините за кривую формулировку вопроса...
|
|
| |
Renus | Дата: Вторник, 26 Октября 2010, 18:34 | Сообщение # 42 | Тема: [2d] 0x000001 |
почетный гость
Сейчас нет на сайте
| Ниче так, весело, тока сделай что бы управление работало только если объект на поверхности, а то проблема всех платформеров, что игрок даже в воздухе умудряется двигаться...
|
|
| |
Renus | Дата: Суббота, 23 Октября 2010, 17:54 | Сообщение # 43 | Тема: [2D] - Зверобой |
почетный гость
Сейчас нет на сайте
| Quote (PaintKiller) Renus, арты ваши? Ну, я ж игру не сам делаю, всю графику и арты, кроме набросков на кораблики делает моделлер, ну он и художник в принципе... Я единственное еще звезды, туман и пыль делал, а так все он. Так что все кроме звуков полностью свое, звуки скоро тоже свои будут... А к чему собственно вопрос?
|
|
| |
Renus | Дата: Суббота, 23 Октября 2010, 14:08 | Сообщение # 44 | Тема: [2D] - Зверобой |
почетный гость
Сейчас нет на сайте
| Спасибо) Вчера наконец то связался с моделлером, думаю на следующей недели будет более менее функциональная демка, с стреляющими врагами и возможно плюшками... Хотя изменения скорее больше коснуться механики игры чем внешнего вида...
|
|
| |
Renus | Дата: Пятница, 22 Октября 2010, 20:10 | Сообщение # 45 | Тема: Начальные параметры объектов, кто как? |
почетный гость
Сейчас нет на сайте
| Всем привет, это снова Я) Задам не большой легкий вопросик, просто интересно кто как делает. Как вы задаете начальные параметры для создаваемых объектов(самолетов, плюшек и прочей игровой утвари)? Создаете объект через конструктор копирования, задаете все переменные напрямую через конструктор объекта, загружаете из внешнего фала или еще как то? Делитесь опытом коллеги
|
|
| |
Renus | Дата: Среда, 20 Октября 2010, 19:21 | Сообщение # 46 | Тема: Простой двусвязный список |
почетный гость
Сейчас нет на сайте
| Quote (nilrem) vector.insert(vector.begin,vector element); Да, спасибо, помогло! Code Obj_List.insert(Obj_List.begin(), new CBullet(x, y-120, 0, bullet1, "bullet")); Но ведь инсерт медленно работает в векторе? Все таки, в качестве спортивного интереса и опыта, не могли бы помочь с моим шаблонизированным списком...?
|
|
| |
Renus | Дата: Среда, 20 Октября 2010, 18:02 | Сообщение # 47 | Тема: Простой двусвязный список |
почетный гость
Сейчас нет на сайте
| Quote (Programmer_BIOMSOFT) где ты учился С++? Зачем такой большой код?! И о ошыбке в спрвку заглянь.... Обьясни мне почему ты не используешь векторы? Сам учу по книжкам... Все обьекты занесены в список, у каждого есть функция Process которая вызывается на каждом кадре(собсно логика обьекта). К примеру, обрабатывается сущность игрока(самолетик), в это всремя зажат пробел, происходит выстрел(создаться пуля), так вот эта пуля должна добавляться перед обьектом ее создающим, дабы она не обрабатывалась в этом цикле(иначе ее первая отрисовка будет уже сдвинута на величину ее скорости), тоесть при привязки всех величин игры в dt(времени отрисовки) ее видимая точка появления будет смещать по оси Y в зависимости от FPS... Решается это просто, нужно засунуть пулю в начало списка, но у вектора нету такой функции. А почему я не использую list написано в моем первом посте! Вообщем прошу писать по теме... P. S. Помогите с ошибкой пожалуйста...
|
|
| |
Renus | Дата: Среда, 20 Октября 2010, 11:37 | Сообщение # 48 | Тема: Простой двусвязный список |
почетный гость
Сейчас нет на сайте
| Вообщем, в плане построения своей игры возникла необходимость использовать list, вместо vector, для хранения указателей на все игровые объекты. Не хватало всего одной функции - push_front, для того что бы созданные игровые объекты не обрабатывались в текущем цикле(это не правильно логически, один кадр конечно не смертельно, но шедевры собираются из мелочей...), и успевали отрисоваться в своих начальных координатах. Попробовал просто сменить vector на list и по вылазила куча ошибок) И тут я задумался, а почему бы не попробовать написать подобный контейнер самому, только уже без десятков не нужных мне функций. Для половины критиков скажу сразу, Я не собираюсь спорить с STL и изобретать велосипед. У меня есть время и я хочу разобраться, как этот велосипед работает)) Как говорил мой школьный учитель физики:"С готовой формулой любой дурак сможет, а без слабо?" Короче хватит лирики, а то еще книгу напишу, "Как я писал на С++" Как устроены STL контейнеры я не читал, но думаю как и все шаблоны, включил логику и начал писать свой, иногда правда гуглил по форумам на счет динамических списков... Вот, то что я накидал за сегодня: Code //------------------------------------------------------------------------------ // Класс элемента //------------------------------------------------------------------------------ template<class T> struct Element { T data; // Хранимые данные элемента Element* next, * prev; // Указатели на соседние элементы Element<T>(T); // Конструктор элемента };
//------------------------------------------------------------------------------ // Класс листа //------------------------------------------------------------------------------ template<class Type> class CList { public: int size; // Колличество элементов в листе Element<Type>* first, * last; // Указатели на крайние элементы
void push_front(Type); // Добавление в начало void push_back(Type); // Добавление в конец void del_elem(int); // Удаление элемента по номеру Type* get_data(int); // Получение данных
CList<Type>(); // Конструктор списка по умолчанию };
// Конструктор элемента template<class T> Element<T>::Element(T pdata) {data=pdata;}
// Конструктор листа по умолчанию template<class Type> CList<Type>::CList() { size=0; first=NULL; last=NULL; }
// Добавление элемента в начало списка template<class Type> void CList<Type>::push_front(Type pdata) { if (size==0) { first=new Element<Type>(pdata); first->next=NULL; first->prev=NULL; last=first; size+=1; } else { Element<Type>* temp=new Element<Type>(pdata); temp->next=first; temp->prev=NULL; first->prev=temp; first=temp; size+=1; } }
// Добавление элемента в конец списка template<class Type> void CList<Type>::push_back(Type pdata) { if (size==0) { last=new Element<Type>(pdata); last->next=NULL; last->prev=NULL; first=last; size+=1; } else { Element<Type>* temp=new Element<Type>(pdata); temp->prev=last; temp->next=NULL; last->next=temp; last=temp; size+=1; } }
// Удаление элемента из списка по номеру template<class Type> void CList<Type>::del_elem(int num) { if (num==0) { Element<Type>* temp=first; first->next->prev=NULL; first=first->next; delete temp; size-=1; } if (num==size-1) { Element<Type>* temp=last; last->prev->next=NULL; last=last->prev; delete temp; size-=1; } if (num>0 && num<size-1) { Element<Type>* temp=first; for (int i=0; i<num; i++) { temp=temp->next; } temp->prev->next=temp->next; temp->next->prev=temp->prev; delete temp; size-=1; } }
// Получение данных из элемента template<class Type> Type* CList<Type>::get_data(int num) { if (num==0) {return &first->data;} if (num==size-1) {return &last->data;} if (num>0 && num<size-1) { Element<Type>* temp=first->next; for (int i=1; i<num; i++) { temp=temp->next; } return &temp->data; } else {return NULL;} } P.S. Поскольку пишу я быдлокодом, то попрошу вас товарищи, указывать на все мои ошибки, даже которые не касаются работоспособности кода. Скажите что не правильно и что можно сделать лучше, пока я не начал писать дальше... Всем заранее спасибо! Добавлено (20.10.2010, 11:37) --------------------------------------------- Хм... так отдельно в своем проекте работает, а как добавляю в игру и разбиваю на 2 файлы сср и h. При попытке создать экземпляр выдает такую гадость: Code 1>lists.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall CList<class CObject *>::CList<class CObject *>(void)" (??0?$CList@PAVCObject@@@@QAE@XZ) в функции "void __cdecl `dynamic initializer for 'MyList''(void)" (??__EMyList@@YAXXZ) Помогите разобраться...(((
|
|
| |
Renus | Дата: Вторник, 19 Октября 2010, 00:26 | Сообщение # 49 | Тема: [2D] - Зверобой |
почетный гость
Сейчас нет на сайте
| Quote (67boy) Было б 3Д, тогда б не игра а ЗОЛОТО. НУ мне еще то 3Д как до... Но в мечтах 3Д космосим где все работает на физике, у корабля есть маршевые и маневровые двигатели, если разогнались до 0.99С, извините тормозите еще столько же что бы остановиться))) А не так, как во всех играх, кнопку отжал и остановился, на каком законе физики... Quote (minimog) а нельзя ли переместить кнопки замедления времени на другие места Вот, специально для друга, как раз и скрины залью... смотрим управление в описании! Демка и скрины перезалиты!
|
|
| |
Renus | Дата: Понедельник, 18 Октября 2010, 11:10 | Сообщение # 50 | Тема: [2D] - Зверобой |
почетный гость
Сейчас нет на сайте
| Quote (NeZnayu) Почему фон стоит на месте? Почему все противники дохнут от одного выстрела? Добавим в ближайшее время...Добавлено (18.10.2010, 11:10) --------------------------------------------- Пока что только динамический фон сделал, занят внутренними работами... Демку перезалил.
|
|
| |
Renus | Дата: Среда, 13 Октября 2010, 01:39 | Сообщение # 51 | Тема: [2D] - Зверобой |
почетный гость
Сейчас нет на сайте
| Ну, на самом деле, именно так я и хотел назвать...) Это название всплыло из детства, году так наверное в 95 я игрался в подобную игру, еще на первых моделях х86)))Добавлено (08.10.2010, 02:15) --------------------------------------------- Написал упрощенную версию системы частиц, добавил звук. Сделал бы больше, но был занят))) Перезалил демку, качаем смотрим, критикуем!!! Скрины пока не менял... Добавлено (13.10.2010, 01:39) --------------------------------------------- Доработал частицы, но еще отлаживаю... Сделал изменение скорости воспроизведения звука. (для наглядности изменяется скорость фоновой музыки, вообще будут только игровые звуки) Перезалил демку и скриншоты! Люди не молчим, критикуйте, делитесь идеями!!!
|
|
| |
Renus | Дата: Понедельник, 11 Октября 2010, 19:11 | Сообщение # 52 | Тема: Пятый конкурс от GcUp.ru! (#5) |
почетный гость
Сейчас нет на сайте
| Я б на такую критику не обиделся... И тем более она не ко всем относиться.
|
|
| |
Renus | Дата: Понедельник, 11 Октября 2010, 19:02 | Сообщение # 53 | Тема: Пятый конкурс от GcUp.ru! (#5) |
почетный гость
Сейчас нет на сайте
| Извините конечно, но стоящих игра там максимум две или три. Честно, мне было бы стыдно выкладывать такие игры... Я не выложил свою, потому что не успел сделать и половины, от того что запланировал, но тот обрубок игры который я сделал засунул бы далеко в *опу 2/3 выложенных на конкурс игр, при том что это моя первая игра и она пишется на Яп... Ребята, не хочу никого обидеть, но пора расти, ведь ваши игры будут интересны вам и максимум вашим друзьям. Еще раз извините за резкую критику. P. S. А голосование советую провести, т. к. есть игры с очень интересной задумкой, которые почему то заняли низкие места.
|
|
| |
Renus | Дата: Понедельник, 11 Октября 2010, 16:55 | Сообщение # 54 | Тема: Цвет и прозрачность в HGE |
почетный гость
Сейчас нет на сайте
| DekaSoft, nilrem Огромное спасибо! Почитал, разобрался, все работает) Если будут вопросы по AVR или другим чипам, обращайтесь, всегда помогу... Обязательно напишу вам в титрах к игре благодарность
|
|
| |
Renus | Дата: Понедельник, 11 Октября 2010, 09:33 | Сообщение # 55 | Тема: Цвет и прозрачность в HGE |
почетный гость
Сейчас нет на сайте
| Quote (DekaSoft) Или научить как логическими операциями установить/сбросить бит? Чего-то я плохо понял вопрос кажется... Ага Кинь инфу или ссылку, а то я искал с двордом ниче не нашел...
|
|
| |
Renus | Дата: Понедельник, 11 Октября 2010, 09:07 | Сообщение # 56 | Тема: Цвет и прозрачность в HGE |
почетный гость
Сейчас нет на сайте
| Да это я читал, я имел ввиду побитовую установку значений(в отдельности) каждой из четырех оставляющих. Еще и работа с шестнадцатеричной системой, не очень быстро получается...
|
|
| |
Renus | Дата: Понедельник, 11 Октября 2010, 02:30 | Сообщение # 57 | Тема: Цвет и прозрачность в HGE |
почетный гость
Сейчас нет на сайте
| Посмотрев на родную систему частиц HGE я немножко по плевался, нет все красиво выглядит, но в моей игре есть изменение течения времени и подобные выкрутасы, которые толкнули к написанию своей системы частиц... Написал уже довольно много, все работает и довольно красиво, не могу только с одной вещью разобраться. Как изменить цвет и прозрачность спрайта, как обратиться к определенному биту DWORDа отвечающему за цвет, можно ли как то обойти переводы с шестнадцатеричной системой? Понимаю что возможно не корректно сформулировал вопрос, но лучше не получаеться))) Расскажите кто как работает с цветом спрайтов в HGE плз...
|
|
| |
Renus | Дата: Понедельник, 11 Октября 2010, 01:41 | Сообщение # 58 | Тема: Пятый конкурс от GcUp.ru! (#5) |
почетный гость
Сейчас нет на сайте
| Ну что там, кто выиграл?!)))
|
|
| |
Renus | Дата: Суббота, 09 Октября 2010, 19:29 | Сообщение # 59 | Тема: Пятый конкурс от GcUp.ru! (#5) |
почетный гость
Сейчас нет на сайте
| Quote (vicu2010) А я не соглашусь! Кто напишет двиг,нарисует декораций, зделает музыку и всё за месяц? А конструктор вам в помощь! Так я и говорю что для подобных конкурсов конструктор вполне подходит... Но сам я пишу на VS 2008(C++) + HGE +Squall И еще я музыкант, и всякое подобие клубняка могу наклацать левой ногой в темноте))) Это вам не Баха с Вивальди играть...
|
|
| |
Renus | Дата: Суббота, 09 Октября 2010, 18:39 | Сообщение # 60 | Тема: Пятый конкурс от GcUp.ru! (#5) |
почетный гость
Сейчас нет на сайте
| Quote (vicu2010) Кто на каком Кострукторе/Движке делал игру? Конструкторы для детей или для подобных конкурсов, когда нужно реализовать что то простое и быстро... А когда речь идет о сложном проекте, большой игре и быстрой производительности, взлетает только Яп. По этому тяжело сравнивать игры "склацанные" на конструкторе и написанные ручками, при внешней схожести это задачи совершенно разной сложности...(хотя игроку пофигу, ему главное геймплэй) Но, уважающий себя программист, для решения подобной задачи, конструктором пользоваться вряд ли будет... А вообще, вопрос интересный, колитесь граждане!)))
Сообщение отредактировал Renus - Суббота, 09 Октября 2010, 18:41 |
|
| |
|