Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #60 : 15-12-2008 23:03 » |
|
Антон__, Ну движение и расчет насколько я знаю вешаются на таймер, а не на WM_IDLE. Или выносятся в отдельный thread (нитка) и там уже обсчитывается вся не графическая часть, но синхронизация тиков движения все равно происходит по таймеру. Лучше конечно использовать мультимедиа таймеры. .
|
|
« Последнее редактирование: 15-12-2008 23:06 от Finch »
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #61 : 16-12-2008 04:37 » |
|
Хм, я что то тут даже не нашёл, где добавляется обработчик события - или теперь только вручную ? ))
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #62 : 16-12-2008 04:49 » |
|
во, нашёл, офигеть как запрятали - в свойствах диалога, messages
теперь пытаюсь найти, где добавляеются виртуальные функции (из родительского класса, например для диалога)
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #63 : 17-12-2008 17:25 » |
|
Как мне добавить функцию void CMainFrame::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) { MessageBox(L"OnKey"); }
Запихиваю в класс, но ничего не происходит...
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #64 : 17-12-2008 17:55 » |
|
надо добавить обработчик сообщений WM_KEYUP, а визард сам пропишет функцию
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #65 : 17-12-2008 18:11 » |
|
фсё, частично разгрёб. Давай проект, на какой он там у тебя стадии
-------------- последние изменения - перекидал файлы, запустилось, но один только тёмно-зелёный экран и циферки, с графикой я не разбирался ещё
Поразбирайся, если чё - завтра продолжим
|
|
« Последнее редактирование: 17-12-2008 19:57 от Алексей1153++ »
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #66 : 18-12-2008 12:41 » |
|
Что такое __asm int 3 ?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #67 : 18-12-2008 17:13 » |
|
Offtopic: это зло Поставлю в угол. это вызов прерывания 3 (не знаю, что делает) , а зачем тебе это ? Ты в проекте делал что нибудь, или в этом продолжать копаться ?
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #68 : 18-12-2008 18:08 » |
|
Это для ассерта, в универе задали) Вот хочу узнать про это попдробнее.
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #69 : 18-12-2008 21:01 » |
|
Это не assert. А Дебаг прерывание. Почти все дебагеры раньше использовали это прерывание. Сейчас честно говоря не знаю положение. Это прерывание примечательно тем, что записывается всего в один байт машинного кода. Дебагер его записывал в точке останова. Затем после останова, востанавливал предыдушее значение байта. Сейчас чуть сложнее с этим играться. Так как страници памяти с кодом read only как правило.
|
|
« Последнее редактирование: 18-12-2008 21:04 от Finch »
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
Антон__
|
|
« Ответ #70 : 18-12-2008 21:43 » |
|
Finch, спасибо.
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #71 : 28-12-2008 16:25 » |
|
Уже 1500 просмотров. Выкладываю последнюю версию.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #72 : 28-12-2008 16:31 » |
|
Антон__, у меня процесс застрял на поверхностях, пока больше не успел. Зафтра последний день, дальше неделя отдыха - там собираюсь оторваться
твой проект открыть не смог - не желает конвертироваться
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #73 : 28-12-2008 16:51 » |
|
оу, победил поверхности ) Моя структурка, инкапсулирующая поверхность, выглядит так struct s_PictSurface { private: IDirect3DSurface9* pDS;
public:
const IDirect3DSurface9* GetDirectSurface() { return pDS; }
s_PictSurface() { ::memset(this,0,sizeof(*this)); }
bool CreateEmpty(const s_D3DVals* p3DVals,UINT Width,UINT Height,D3DPOOL Pool=D3DPOOL_SYSTEMMEM) { if(pDS)return false; HRESULT hres=0; hres=p3DVals->pDI->CreateOffscreenPlainSurface( Width, Height, p3DVals->PresentationParameters.BackBufferFormat, Pool, &pDS, 0); if(hres!=D3D_OK || pDS==0)return false; return true; }
bool CreateFromResource(HINSTANCE hinst,IDirect3DDevice9* pDI,const char* pchResourceID,D3DPOOL Pool=D3DPOOL_SYSTEMMEM) { HRESULT hres=0; if(pDS)return false;
D3DXIMAGE_INFO SrcInfo; hres=D3DXGetImageInfoFromResource(hinst,pchResourceID,&SrcInfo); if(hres!=D3D_OK)return false;
hres=pDI->CreateOffscreenPlainSurface( SrcInfo.Width, SrcInfo.Height, D3DFMT_A8R8G8B8,//SrcInfo.Format, Pool, &pDS, 0); if(hres!=D3D_OK || pDS==0)return false;
hres=D3DXLoadSurfaceFromResource( pDS, 0, 0, hinst, pchResourceID, 0, D3DX_FILTER_NONE, 0, 0 );
if(hres!=D3D_OK)return false;
return true; }
//bool Create(IDirect3DDevice9* pDI,UINT Width,UINT Height,D3DFORMAT Format,DWORD Pool) bool CreateFromFile(IDirect3DDevice9* pDI,const char* pchResource,D3DPOOL Pool=D3DPOOL_SYSTEMMEM) { HRESULT hres=0; if(pDS)return false;
D3DXIMAGE_INFO SrcInfo; hres=D3DXGetImageInfoFromFile(pchResource,&SrcInfo); if(hres!=D3D_OK)return false;
hres=pDI->CreateOffscreenPlainSurface( SrcInfo.Width, SrcInfo.Height, D3DFMT_A8R8G8B8,//SrcInfo.Format, Pool, &pDS, 0); if(hres!=D3D_OK || pDS==0)return false;
hres=D3DXLoadSurfaceFromFile(pDS, 0, 0, pchResource, 0,D3DX_FILTER_NONE, 0, 0); if(hres!=D3D_OK)return false;
return true; }
~s_PictSurface() { if(pDS)pDS->Release(); pDS=0; } };
|
|
« Последнее редактирование: 28-12-2008 16:54 от Алексей1153++ »
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #74 : 28-12-2008 16:57 » |
|
а, кстати, для того, Антон, что ты всё пытаешься сделать глобальными переменными, у меня выглядит так struct s_D3DVals { IDirect3D9* pD3Dobject; D3DPRESENT_PARAMETERS PresentationParameters; IDirect3DDevice9* pDI; D3DCAPS9 Caps;
s_D3DVals() { ::memset(this,0,sizeof(*this)); }
~s_D3DVals() { if(pD3Dobject)pD3Dobject->Release(); pD3Dobject=0; if(pDI)pDI->Release(); pDI=0; } };
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #75 : 28-12-2008 17:21 » |
|
А при нажатии клавиши как её передавать?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #76 : 28-12-2008 17:27 » |
|
Антон__, в смысле, ты имеешь в виду - как ввод обрабатывать ?
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #77 : 29-12-2008 09:50 » |
|
Если так не любишь глобальные, то хотя бы так сделай: struct s_D3DVals { static IDirect3D9* pD3Dobject; static IDirect3DDevice9* pDI; static D3DPRESENT_PARAMETERS PresentationParameters;
// а вот это лишнее: // static D3DCAPS9 Caps; }
Не надо будет постоянно передавать объект класса.
|
|
« Последнее редактирование: 29-12-2008 09:54 от Антон__ »
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #78 : 29-12-2008 10:20 » |
|
Антон__ , D3DCAPS9 Caps - эт затесалось )) Фиг с ним.
А зачем объект класса то передавать ? Я указатель передаю ) А глобальные - это ты у нас любишь, а у меня во вьюшке всё осталось
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #79 : 29-12-2008 10:41 » |
|
Я имел в виду, что не надо будет писать: void foo(s_d3dvals var) { var.pDi->........ } Можно: void foo() { s_D3dval::pDI->........ }
|
|
|
Записан
|
|
|
|
McZim
|
|
« Ответ #80 : 29-12-2008 10:51 » |
|
Антон__, ты явно не знаком с безопасным программированием. Лучше не спорь и откажись от глобальных переменных.
|
|
|
Записан
|
The CBO without stats is like a morning without coffee. (c) T.Kyte.
|
|
|
Антон__
|
|
« Ответ #81 : 29-12-2008 11:50 » |
|
McZim Да, я не знаком.
Я так понимаю, что s_d3dvals нужна для того, чтобы знать изменяет ли функция глобальные переменные или нет. Или я не прав?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #82 : 29-12-2008 12:32 » |
|
Антон__, в структура нужна для того, чтобы весь веник директиксовских указателей был собран в кучу и по возможности вообще скрыт от программиста Но совсем всё скрыть не получится, естественно
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #83 : 29-12-2008 12:51 » |
|
Тут можно устроить опрос? А то мне хочется узнать сколько человек следят за темой.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #84 : 29-12-2008 13:01 » |
|
Антон__, думаю, только мы двое следим за темой Причём - ты больше, я гораздо меньше, урывками. Остальным просто интересно, чем всё это закончится
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #85 : 29-12-2008 13:11 » |
|
Вот я и хочу узнать, есть ли смысл в этой теме. Если больше никто не присоединится, то обсуждение можно закрывать.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #86 : 30-12-2008 04:17 » |
|
зачем же закрывать, я, например, буду выкладывать, что у меня получается
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #87 : 30-12-2008 07:53 » |
|
Вы че тут закрывать собрались? Интересно ж
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Антон__
|
|
« Ответ #88 : 30-12-2008 09:12 » |
|
Ага, почти реалити-шоу:)
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #89 : 30-12-2008 10:27 » |
|
Алексей, когда делать-то начнем? У меня уже почти похоже на игру Осталось ИИ добавить, можно еще взрывы и анимацию.
|
|
|
Записан
|
|
|
|
|