PMG http://forum.pmg.org.ru/ |
|
Помогите очередному новичку. http://forum.pmg.org.ru/viewtopic.php?f=4&t=6682 |
Страница 2 из 3 |
Автор: | Maxi_daxi [ 10 июн 2008 15:53 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Цитата: Чем отличается BOOL от boolean и чем отличается NULL от 0 ??? На первую часть ответить не могу(не знаю), но на вторую могу ответить точно: NULL от 0 абсолютно ничем не отличается int* a = NULL и int* a = 0 эквивалентны, как и int a = NULL и int a = 0 |
Автор: | Maxi_daxi [ 10 июн 2008 15:57 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
eger_666 Цитата: To Infrno... к примеру в главах где рассказывается про добавление ресурсов, он говорит про какой то файл .Ж Или к примеру он пишет вместо #include, ftinctude Какая-то палёная у тя кинижка eger_666 |
Автор: | eger_666 [ 10 июн 2008 15:57 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
А чёже тогда многие пишут где НУЛЛ, а где 0? Для разнообразия??? И кстати при переходе в другой режим клавишей Ф1 появляется ошибка о невозможности зарегить окно. Вот щад думаю почему... |
Автор: | eger_666 [ 10 июн 2008 15:58 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Плёная книжка))) А где можно нормальную скачать??? |
Автор: | Maxi_daxi [ 10 июн 2008 16:10 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Цитата: И кстати при переходе в другой режим клавишей Ф1 появляется ошибка о невозможности зарегить окно. Вот щад думаю почему... В конце TerminateGLWindow пропущено: Код: if( !UnregisterClass( "OpenGL", hInstance ) ) { MessageBox( NULL, "Could Not Unregister Class.", "SHUTDOWN ERROR", MB_OK | MB_ICONINFORMATION ); hInstance = NULL; } Не забывай, что имена должны совпадать! здесь имя - "OpenGL" Цитата: Плёная книжка))) А где можно нормальную скачать??? Получше скан предложить не могу, но могу подкинуть исходный код на email к обоим книгам ЛаМота! Цитата: А чёже тогда многие пишут где НУЛЛ, а где 0? Для разнообразия??? Ты прав, по моему та же тема в Паскале с NIL |
Автор: | eger_666 [ 10 июн 2008 16:17 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Цитата: Получше скан предложить не могу, но могу подкинуть исходный код на email к обоим книгам ЛаМота! Ну если можешь, то давай. Думаю имейл ты уже знаешь Цитата: Ты прав, по моему та же тема в Паскале с NIL Да, в Delphi тоже некоторые любят nil ставить... |
Автор: | eger_666 [ 10 июн 2008 16:56 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Короче с чего лучше начать? С Уроков NeHe или с Лемота? |
Автор: | Maxi_daxi [ 10 июн 2008 17:24 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
eger_666 Цитата: Короче с чего лучше начать? С Уроков NeHe или с Лемота? Я такой же новичок, как и ты. Наверное лучше сначала по NeHe и RedBook(ссылка на нее есть на http://pmg.org.ru/nehe/index.html в разделе Навигатор), так будет хоть какая-то база на OpenGL.Прикол в этих уроках в том,что ты сразу переходишь к практике.Качаешь исходный код, смотришь, что должно получиться, затем делишь свой экран на две части: в одной страничка с уроком NeHe, в другой ты кодишь сторока за строкой.Больше всего париться нужно в первом уроке, в остальных используется код первого урока и просто изменяется DrawGLScene.Особо большие части, как загрузка куба можно и скопировать. (это все имеет смысл на протяжении первых 20и уроков, далле вы, набив руку, копируте полностью код и спокойно читаете урок). Потом Сокобан, змейка, тетрис.Как это сделать? Я сам еще их не делал только собираюсь, но знаю ,что это обясняется у Мозгового "Занимательное программирование", там все на Delphi и Pascal, поэтому Си - кодеру надо изучать OpenGl(у меня так).И никого С++ не нужно, достаточно знаний о С++ из приложения(в конце книг Программирование игр для Windows) Ламота. Если ты написал эти игры , все равно хоть какое-то знание OpenGl не повредит. Если кому надо, качайте исходники к Ламоту Программирование игр для Windows: http://ifolder.ru/6925166 Если запускаете в оконном режиме, не забывайте, что глубина цвета(количество бит на пиксель) у окна и рабочего стола должны совпадать.У Ламота это 16 бит. |
Автор: | eger_666 [ 10 июн 2008 18:42 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Круто! Я нашёл где можно скачасть обе книги Лемота вместе с файлами!!! На торрентс ру недавно появилось!!! |
Автор: | eger_666 [ 10 июн 2008 21:34 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Код: #include <windows.h> #include <windowsx.h> #include <stdio.h> #include <math.h> #define DXE_WND_CLASSNAME "DXE Alpha" #define WIN32_LEAN_AND_MEAN //No fucking MCF! //Global variables //Functions LRESULT CALLBACK WindowProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) { PAINTSTRUCT ps; HDC hDC; switch(msg) { case WM_CREATE: { //Actions for initialization return(0); } break; case WM_PAINT: { hDC = BeginPaint( hWnd, &ps); //Everything of picture painting EndPaint( hWnd, &ps); return(0); //Successful complete } break; case WM_DESTROY: { //Shutdown application PostQuitMessage(0); //Sucessful complete return(0); } break; default: break; } //switch return (DefWindowProc ( hWnd, msg, wParam, lParam )); } //WindowProc /////////////////////WINMAIN///////////////////// int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ) { WNDCLASSEX dxeWnd; HWND hWnd; MSG msg; dxeWnd.cbSize = sizeof(WNDCLASSEX); dxeWnd.style = CS_DBLCLKS |CS_OWNDC | CS_HREDRAW | CS_VREDRAW; dxeWnd.lpfnWndProc = WindowProc; dxeWnd.cbClsExtra = 0; dxeWnd.cbWndExtra = 0; dxeWnd.hInstance = hInstance; dxeWnd.hIcon = LoadIcon( NULL, IDI_APPLICATION ); dxeWnd.hIconSm = LoadIcon( NULL, IDI_APPLICATION ); dxeWnd.hCursor = LoadCursor( NULL, IDC_ARROW ); dxeWnd.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); dxeWnd.lpszMenuName = NULL; dxeWnd.lpszClassName = DXE_WND_CLASSNAME; //Class registration if( !RegisterClassEx(&dxeWnd)) return(0); //Window creation if( !(hWnd = CreateWindowEx(NULL, DXE_WND_CLASSNAME, "Alpha", NULL, 0, 0, 400, 400, NULL, NULL, hInstance, NULL ))) { return(0); } //Main event cycle while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } //while //Return to Windows return(msg.wParam); } //WinMain Окно не появляется, но прога появляется в процессах. В чём ошибка??? |
Автор: | Maxi_daxi [ 10 июн 2008 22:07 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Так должно работать: Код: ShowWindow(hWnd, nShowCmd); //НОВОЕ
//Main event cycle while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } //while |
Автор: | eger_666 [ 10 июн 2008 22:27 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Спасибо. Блин, как же я пропустил эту мелочь?.. |
Автор: | Maxi_daxi [ 10 июн 2008 22:45 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Цитата: Спасибо. Блин, как же я пропустил эту мелочь?.. Ты ,кажется, сделал все ошибки, которые только можно сделать! Скорее Ламота качай , там хорошо рассказано программирование на Windows. |
Автор: | eger_666 [ 10 июн 2008 23:07 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Этот код именно из его книги. Факт в том, что прога не хочет уходить из памяти. Я в прошлый раз сам как-то исправил, но щас что-то не помогает... Цитата: Скорее Ламота качай Да я уже скачал обе книги вместе с CD |
Автор: | Maxi_daxi [ 10 июн 2008 23:36 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Молодец ,что пишешь построчно, но ведь нужно же сверяться и с работающим исходным кодом к книге! У меня сейчас на коленях первая книга Ламота. Я понял, что это листинг 2.3, в CreateWindowEx там где у тебя стоит NULL у Ламота: Код: hWnd = CreateWindowEx(NULL, DXE_WND_CLASSNAME, "Alpha", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 0 , 0, 400, 400, NULL, NULL, hInstance, NULL ) WS_OVERLAPPEDWINDOW - добавляет возможность выхода нажав на крестик, свернуть окно. WS_VISIBLE - эквивалентно ShowWindow(hWnd, nShowCmd), если так оставить, то ShowWindow можно и не прописывать. |
Страница 2 из 3 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |