PMG

Форумы по созданию игр
Текущее время: 26 окт 2021 02:25

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




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Unnamed Graphics Engine
СообщениеДобавлено: 12 июл 2007 14:54 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 29 апр 2006 21:28
Сообщения: 404
Буду в этой теме выкладывать новости своего проекта!
Поехали:
-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();
};

Пока всё.

_________________
С уважением,Блинов Андрей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 сен 2007 03:00 
Не в сети
Любитель

Зарегистрирован: 19 сен 2007 02:54
Сообщения: 38
ужос!!! хотябы копипастил по человечески =))

_________________
c++ foreva!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 сен 2007 09:49 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
"копипастил" - это что?

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 20 сен 2007 11:04 
Цитата:
"копипастил" - это что?

Он наверное имел ввиду от слова copy&past. :D


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 20 сен 2007 16:30 
Не в сети
Любитель

Зарегистрирован: 19 сен 2007 02:54
Сообщения: 38
Immortal,
совершенно верно =)

_________________
c++ foreva!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 20 сен 2007 16:45 
Цитата:
Immortal,
совершенно верно =)

Уважаемый dex, а не стыдно вам писать про копипаст без веских доказательств. :x
Может человек старался, а вы так сразу его раскритиковали. =)

P.S. Вы сами можете хоть что-нибудь написать? :P


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 20 сен 2007 18:09 
Не в сети
Любитель

Зарегистрирован: 19 сен 2007 02:54
Сообщения: 38
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. Вы сами можете хоть что-нибудь написать?

конечно написали, иначе не критиковал бы =))
Код:

_________________
c++ foreva!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 20 сен 2007 18:18 
Цитата:
а в игре приходиться обрабаьывать кучу клавиш, поэтому этот вариант для детей, аффтар про калбеки просто походу ничево не слышал вот и намудрил =)

Что такое калбеки?
Обратные вызовы какие-то?
Цитата:
конечно написали, иначе не критиковал бы=)

А можна ссылку. А то верится с трудом.


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 20 сен 2007 21:11 
Не в сети
Любитель

Зарегистрирован: 19 сен 2007 02:54
Сообщения: 38
Цитата:
Что такое калбеки?
Обратные вызовы какие-то?


Ф-ии, которые передаются через указатель и руками их вызывать надобности нету =)) гугли

Цитата:
А можна ссылку. А то верится с трудом.


В чем сомнения? Ссылку на что?

_________________
c++ foreva!!!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

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


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

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


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

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