PMG

Форумы по созданию игр
Текущее время: 26 июл 2026 08:12

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 149 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10  След.
Автор Сообщение
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 05 сен 2010 14:36 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
я предлагаю класс Application НЕ запихивать в длл, он будет лежать в отдельном *.срр файле вместе с соответствующим *.h, так же как и файл main.cpp(в котором находится int main(int argc, char **argv) ). Или он у тебя тоже лежит в длл?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 05 сен 2010 16:08 
bad_duck писал(а):
я предлагаю класс Application НЕ запихивать в длл, он будет лежать в отдельном *.срр файле вместе с соответствующим *.h, так же как и файл main.cpp(в котором находится int main(int argc, char **argv) ). Или он у тебя тоже лежит в длл?


я вернулся....
ты хоть раз программировал на движке??
там создаешь проект, подключаешь инклуды дллки к проекту (как например глут)
потом пишешь инициализацию и тд и тп, потом пишешь в рендер все что нужно отрисовать и при включению все видно
вот я хочу сделать такое
вот смотри
есть файл приложения так все делаеться, это главная такоесть там есть обработка всего, вот например есть еще файл там обработка клафишь там все пишешь и подключаешь к приложению (в файл .h) и в cpp пишешь к чему присоединить обработку
а с рендером все по другому, так как он динимичен (изненяеться) то его надо засунуть в глувный файл приложения и там писать что именно будет отрисовыватся, это решает пользователь
вот


Вернуться к началу
  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 06 сен 2010 03:30 
у меня есть вопрос по структуре движка а точнее по архитектуре

вот есть объект как его описывать?
я придумал так:
создаешь/грузишь меш
создаешь/грузишь текстуру
создаешь класс объекта (не класс а не поню как называеться =(( ну есть класс объекта и я ззоздаю так Object ob; тоесть дочерний или как это называеться, надеюсь поняли)
в класс указываешь этот мешь и текстуру
и получается что есть класс объекта, там можно будет указывать позицию, анимацию (это не скоро) ну и еще что нить, пока не придумал что
потом пишешь отрисовать этот объект в рендере
нормально так будет? или еще решения придумывать


Вернуться к началу
  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 06 сен 2010 08:53 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
Да нормально, у меня почти так же: есть класс модель, при загрузке модели также загружаются текстуры, а потом создается класс объект, который использует эту модель и текстуру.
Насчет движка, а какой смысл тогда от движка, который нельзя изменять? Это уже не движок получается, а почти редактор карт и скриптов, только при этом нужно компилировать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 06 сен 2010 11:20 
почему не изменяемый??
я тебе наоборот талдычу что хочу сделать его изменяемым
но только тело а не структуру
тоесть будет двиг сделанный на классах и ты можешь в своем проекте редить тело этих классов, правда не всех
только render, clear ни и еще всякое
вот смотри пример из irrlich

Код:
#include <irrlicht.h>

using namespace irr;

using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;

#ifdef _IRR_WINDOWS_
#pragma comment(lib, "Irrlicht.lib")
#endif

int main()
{
   IrrlichtDevice *device = createDevice(video::EDT_SOFTWARE, dimension2d<s32>(640, 480), 16, false, false, false, 0);

   device->setWindowCaption(L"Hello World! - Irrlicht Engine Demo");

   IVideoDriver* driver = device->getVideoDriver();
   ISceneManager* smgr = device->getSceneManager();
   IGUIEnvironment* guienv = device->getGUIEnvironment();

   guienv->addStaticText(L"Hello World! This is the Irrlicht Software renderer!",
      rect<s32>(10,10,260,22), true);

   IAnimatedMesh* mesh = smgr->getMesh("../../media/sydney.md2");
   IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode( mesh );

   if (node)
   {
      node->setMaterialFlag(EMF_LIGHTING, false);
      node->setMD2Animation ( scene::EMAT_STAND );
      node->setMaterialTexture(0, getTexture("../../media/sydney.bmp"));
   }

   smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0));

   while(device->run())
   {
      driver->beginScene(true, true, SColor(255,100,101,140));
      smgr->drawAll();
      guienv->drawAll();
      driver->endScene();
   }

   device->drop();
   return 0;
}



Вернуться к началу
  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 06 сен 2010 11:42 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
тогда не понимаю, в чем у тебя проблема?! Как я с самого начала писал, в мейне все подключаешь все библиотеки, потом загружаешь модели, потом, используя готовые (которые пользователь НЕ может изменить) функции по отрисовке моделей, заполняешь ими карту из динамических массивов этих моделей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 06 сен 2010 12:01 
или я не догоняю тебя или ты не догоняешь меня =))
тоесть ты предлогаешь так:
есть модель ее грузишь в класс объекта и рендеришь этот объект?
но как ты напишешь в рендере что ее надо отрендерить?

блин вот по этому и нужен пример движка, что бы понять как там все делают люди, а то чет придумываю придумываю и ничего =(

и еще
как сделать класс освещения?? (сейчас хочу написать)
тоесть что там нормально было
я сам смогу написать но это будет долго (как с текстурой было, два дня писал)
так что прошу помощи
как написать такой класс


Вернуться к началу
  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 06 сен 2010 17:40 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
В предыдущем сообщении ты же выложил пример движка. Как я понимаю все движки идейно так же устроены. Функция рендер в данном примере отсутствует, тут все рисуется в мейне. Но это не принципиально, можно вырезать из мейна и вставить в пустую функцию под названием рендер.

Как отрисовывать нужные объекты? Я делаю так: в функции рендер пишу
Код:
for(int i=0; i<sobjnum; i++)
  sobject[i].draw();
Теперь о том как я получаю этот массив: в инициализации загружаю карту (которую или сам делаешь вручную, или делаешь редактор карт) с этими объектами и многим другим, в итоге после выполнения функции LoadMap() получаю:
1)динамический массив с моделями (идейно только массивы с вершинами, лицами и текстурными коорд.)
2)динамический массив с объектами (в нем вызываю model[modelnumber].draw(), где modelnumber - номер модели хранящийся в классе объекта, еще в нем хранятся повороты и координаты объекта. Всё, больше в классе объект ничего нет)
3)информации о лампочках
4)невидимые пол, стенки, потолок для проверки столкновений, и многое другое.

А в чем проблема с классом лампочки: позиции, параметры мощности лампочки и направление. Все эти параметры загружаются из карты, а потом применяется в функции рендер. Проблема наверно не в классе, а в применении освещения на объектах. Вот один из стандартных примеров http://www.helloworld.ru/texts/comp/games/opengl/opengl2/opengl_06.html
Потом когда будешь учиться шейдерам, советую вот эти уроки http://wingman.org.ru/glsl/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 06 сен 2010 21:24 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 06 сен 2010 21:15
Сообщения: 21
ой опять перерегился =))
достало уже =)) но хоть теперь нормально все сделал =))

сейчас буду до ночи писать двиг
может нормально что и выйдет =))
планирую примерно к 24.00 доведу загрузку текстуры до ума, сделаю класс объектов


и еще тут по архитектуре
в какой файл засунуть объекты
просто сейчас хчу до ума архитектуру сделать

тоесть например все что относится к окну то я кидаю все что к нему в файл Window.h
а куда кинуть объекты?? не могу придумать

_________________
(\_/)
(O.O) <= слушай его!
(>..<)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 07 сен 2010 00:31 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 06 сен 2010 21:15
Сообщения: 21
блин просидел целый день на форуме и к сожелению никто не зашел =((

_________________
(\_/)
(O.O) <= слушай его!
(>..<)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 07 сен 2010 07:39 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
я создаю так: model.cpp + model.h object.cpp + object.h


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 07 сен 2010 12:51 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 06 сен 2010 21:15
Сообщения: 21
а можешь показать содержимое??

_________________
(\_/)
(O.O) <= слушай его!
(>..<)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 07 сен 2010 12:56 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 06 сен 2010 21:15
Сообщения: 21
так у тебя есть двиг??
можешь показать мне его??

_________________
(\_/)
(O.O) <= слушай его!
(>..<)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 07 сен 2010 17:16 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
Я сам пишу движок, уже довольно давно. Извини, код показывать не буду.
isaer писал(а):
а можешь показать содержимое??
А зачем? Идея не понятна или просто влом долго писать? Если первое, то напиши что именно не понятно, а если второе, то зачем тогда самому писать движок, используй готовый.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уроки NeHe
СообщениеДобавлено: 07 сен 2010 21:24 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 06 сен 2010 21:15
Сообщения: 21
я не палагиатщик
не использую чужое всякое
все пишу сам и с нуля
просто хотел посмотреть как реализован рендер и модели
если можно то хотя бы напиши подробно как сделал
а писать мне не влом
я щас с утреца довигище вдохновления набрал да и в колледже дела отлично так что день просто супер =) и еще наверно завтро такой будет =)) так что буду писать и писать

и еще напишу, ели нету вдохновения то очень советую посмотреть как люди делают игры, я вот смотрел утром историю создания the elder scrols 4 oblivion 45 минут шел =)) просто супер, как посмотрел сразу захотел кодить но к сожелению уже надо было бежать в колледж (чуть не опоздал)

_________________
(\_/)
(O.O) <= слушай его!
(>..<)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 149 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB