PMG https://forum.pmg.org.ru/ |
|
Unnamed Graphics Engine https://forum.pmg.org.ru/viewtopic.php?f=5&t=3545 |
Страница 1 из 1 |
Автор: | Assassin [ 12 июл 2007 14:54 ] |
Заголовок сообщения: | Unnamed Graphics Engine |
Буду в этой теме выкладывать новости своего проекта! Поехали: -C++/DirectX 9/Direct Input 8(привык проста уже) Щас проект на начальной стадии,вырисовываю архитектуру,так что пока особых фич нету. Движок похож на Ogre3D,но это не сдерание движка,это просто наследование его концепций! Имеем: - DX Input. - tga,bmp,jpg,hdr (вобщем все что держит D3DXCreateTextureFromFile) - .X файлы,вместе с текстурами. - Камера FPS стиля. Двиг компилится в статическую .lib и все желающие смогут её получить,но пока там особо нечего смотреть. Вот код показывающий создание и управление камерой,загрузка X файла. CSample01.h Код: #pragma once #include "../../unnamed/unnamed/UnnamedAPI.h" #pragma comment(lib,"../../unnamed/debug/Unnamed.lib") using namespace unnamed; root::CRoot* m_root = new root::CRoot(); //main engine object core::CCore* m_window; video::IRenderDevice* m_device; scene::CSceneManager* m_sceneMgr; core::CInput* m_input; //***************scene nodes*****************// scene::ISceneNode* m_sceneNode; //***************scene objects***************// scene::ICamera* m_camera; scene::IEntity* m_entity; class CSampleFrameListener:public video::IFrameListener { public: CSampleFrameListener(void){up =0;}; public: ~CSampleFrameListener(void){}; public: void frameStarted() { f32 forward = 0; f32 sideward = 0; m_input->poll(); if(m_input->keyDown(UK_W)) forward = 0.1f; if(m_input->keyDown(UK_S)) forward = -0.1f; if(m_input->keyDown(UK_A)) sideward = -0.1f; if(m_input->keyDown(UK_D)) sideward = 0.1f; if(m_input->mouseDown(UM_KEYLEFT)) up = up+ 0.1f; if(m_input->mouseDown(UM_KEYRIGHT)) up = up- 0.1f; m_camera->fPitch-=(double)m_input->getMouseState().lY * 0.01f; m_camera->fYaw -= (double)m_input->getMouseState().lX * 0.01f; m_camera->moveCamera(forward,sideward); m_camera->setPosition(core::CVec3(m_camera->getPositionX(),up,m_camera->getPositionZ())); m_entity->render(); } void frameEnded() { } private: f32 up; }; CSample01.cpp Код: #include "CSample01.h"
video::IFrameListener* frameListener = new CSampleFrameListener(); void init() { m_window = m_root->createCore("Unnamed",800,600); m_device = m_root->createRenderDevice(); m_device->addFrameListener(frameListener); m_sceneMgr = m_root->createSceneManager(); m_input = m_window->createInput(); m_camera = m_sceneMgr->createCamera(); m_camera->setPosition(core::CVec3(0.0f,6.0f,0.0f)); m_sceneNode = m_sceneMgr->getRootSceneNode()->createChildSceneNode(); m_sceneNode->setScaling(core::CVec3(10.0f,10.0f,10.0f)); m_entity = m_sceneMgr->createEntity("../../data/models/Dwarf.x"); m_entity->loadMaterials("../../data/models/"); m_entity->attachToSceneNode(m_sceneNode); } void cleanup() { m_entity->cleanUp(); m_device->cleanup(); } int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { init(); m_input->createInputDevice(hInstance); m_device->startRendering(); cleanup(); }; Пока всё. |
Автор: | _dex_ [ 19 сен 2007 03:00 ] |
Заголовок сообщения: | |
ужос!!! хотябы копипастил по человечески ) |
Автор: | MagicWolf [ 19 сен 2007 09:49 ] |
Заголовок сообщения: | |
"копипастил" - это что? |
Автор: | Tiger [ 20 сен 2007 11:04 ] |
Заголовок сообщения: | |
Цитата: "копипастил" - это что?
Он наверное имел ввиду от слова copy&past. |
Автор: | _dex_ [ 20 сен 2007 16:30 ] |
Заголовок сообщения: | |
Immortal, совершенно верно |
Автор: | Tiger [ 20 сен 2007 16:45 ] |
Заголовок сообщения: | |
Цитата: Immortal,
совершенно верно Уважаемый dex, а не стыдно вам писать про копипаст без веских доказательств. Может человек старался, а вы так сразу его раскритиковали. P.S. Вы сами можете хоть что-нибудь написать? |
Автор: | _dex_ [ 20 сен 2007 18:09 ] |
Заголовок сообщения: | |
Immortal, да афтар сам пишет, что из ОГРа много брал и это видно, вот например(точно как в ОГРе): Код: m_window = m_root->createCore("Unnamed",800,600); m_device = m_root->createRenderDevice(); m_device->addFrameListener(frameListener); m_sceneMgr = m_root->createSceneManager(); m_input = m_window->createInput(); m_camera = m_sceneMgr->createCamera(); m_camera->setPosition(core::CVec3(0.0f,6.0f,0.0f)); m_sceneNode = m_sceneMgr->getRootSceneNode()->createChildSceneNode(); m_sceneNode->setScaling(core::CVec3(10.0f,10.0f,10.0f)); m_entity = m_sceneMgr->createEntity("../../data/models/Dwarf.x"); m_entity->loadMaterials("../../data/models/"); m_entity->attachToSceneNode(m_sceneNode); критика: Код: m_input->poll(); if(m_input->keyDown(UK_W)) forward = 0.1f; if(m_input->keyDown(UK_S)) forward = -0.1f; if(m_input->keyDown(UK_A)) sideward = -0.1f; if(m_input->keyDown(UK_D)) sideward = 0.1f; if(m_input->mouseDown(UM_KEYLEFT)) up = up+ 0.1f; if(m_input->mouseDown(UM_KEYRIGHT)) up = up- 0.1f; а в игре приходиться обрабаьывать кучу клавиш, поэтому этот вариант для детей, аффтар про калбеки просто походу ничево не слышал вот и намудрил ) Цитата: P.S. Вы сами можете хоть что-нибудь написать? конечно написали, иначе не критиковал бы ) Код:
|
Автор: | Tiger [ 20 сен 2007 18:18 ] |
Заголовок сообщения: | |
Цитата: а в игре приходиться обрабаьывать кучу клавиш, поэтому этот вариант для детей, аффтар про калбеки просто походу ничево не слышал вот и намудрил Что такое калбеки? Обратные вызовы какие-то? Цитата: конечно написали, иначе не критиковал бы=)
А можна ссылку. А то верится с трудом. |
Автор: | _dex_ [ 20 сен 2007 21:11 ] |
Заголовок сообщения: | |
Цитата: Что такое калбеки? Обратные вызовы какие-то? Ф-ии, которые передаются через указатель и руками их вызывать надобности нету ) гугли Цитата: А можна ссылку. А то верится с трудом.
В чем сомнения? Ссылку на что? |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |