PMG http://forum.pmg.org.ru/ |
|
Помогите очередному новичку. http://forum.pmg.org.ru/viewtopic.php?f=4&t=6682 |
Страница 1 из 3 |
Автор: | eger_666 [ 10 июн 2008 01:26 ] |
Заголовок сообщения: | Помогите очередному новичку. |
Вот зашёл на ваш форум, посмотрел что люди пишут... Я в геймдеве новенький и никак не могу определиться. Комманду набрать я несмог и несмогу, так что придётся делать всё одному. Ну и ладно, в конечном счёте я все равно не буду делать упор на графику. Есть несколько вариантов. 1. Написать 2D-Action (вид сверху). Я пытался написать на Visual Basic который я знаю на пять, но потом понял что на нём писать игры такого типо просто неэффективно. Раздобыл пособие по написанию 2D игр на C++ который я неплохо знаю и в данный момент ещё учу. Но автор этой книги ( Андре Ламот ) создал очень много ошибок в коде примеров начиная с отсутствия запятых и кончая ошибками, из-за которых программа не удаляется из памяти... Из-за этого у меня возникают трудности. 2. Написать полноценную 3D игру. Ну конечно эта идея кажется вроде бы наивной, но я изучаю сейчас OpenGL и проблем с ним нет. Написать то движок я может и смогу, но проблема заключается в том, что редактор 3D уровней я ТОЧНО не осилю, да и модельки npc придётся делать, а я в этом ничё не понимаю... 3. Написать какую либо аркаду типо танчиков "для начала". Но для начала это неправельно сказанно, так как похожую скукотень я писал уже много раз ещё когда у меня небыло инета... Ну вот может выскажете свои мнения, рекоммендации в какую "сторону" мне лучше всего направится? |
Автор: | MagicWolf [ 10 июн 2008 09:03 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
eger_666 писал(а): Вот зашёл на ваш форум, посмотрел что люди пишут... Я в геймдеве новенький и никак не могу определиться. Комманду набрать я несмог и несмогу, так что придётся делать всё одному. Ну и ладно, в конечном счёте я все равно не буду делать упор на графику. Есть несколько вариантов. Значит намного и не рассчитывай. eger_666 писал(а): 1. Написать 2D-Action (вид сверху). Без разницы. Вернее можно писать 2D, средствами 3D. Так даже проще. eger_666 писал(а): Я пытался написать на Visual Basic который я знаю на пять, но потом понял что на нём писать игры такого типо просто неэффективно. Не факт. Особенно если учесть XNA, правда там C#, но все равно он ближе к VisualBasic. eger_666 писал(а): Раздобыл пособие по написанию 2D игр на C++ который я неплохо знаю и в данный момент ещё учу. Но автор этой книги ( Андре Ламот ) создал очень много ошибок в коде примеров начиная с отсутствия запятых и кончая ошибками, из-за которых программа не удаляется из памяти... Из-за этого у меня возникают трудности. Не рекомендовал бы Ла Мота. eger_666 писал(а): 2. Написать полноценную 3D игру. Это тяжело и трудно. eger_666 писал(а): Ну конечно эта идея кажется вроде бы наивной, но я изучаю сейчас OpenGL и проблем с ним нет. Написать то движок я может и смогу, но проблема заключается в том, что редактор 3D уровней я ТОЧНО не осилю, да и модельки npc придётся делать, а я в этом ничё не понимаю... Лучше тогда взять что-то готовое и потом приспособиться к нему. eger_666 писал(а): 3. Написать какую либо аркаду типо танчиков "для начала". Но для начала это неправельно сказанно, так как похожую скукотень я писал уже много раз ещё когда у меня небыло инета... Ну вот может выскажете свои мнения, рекоммендации в какую "сторону" мне лучше всего направится? Для начала в 3D сойдет: terrain, animation, а может и BSP. Тогда можно и автоматически генерировать уровни... |
Автор: | eger_666 [ 10 июн 2008 10:49 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
А чем тебе ламот ненравится? Тем что у него в коде ошибки и опечатки? Просто многие говорят что неплохо бы прочитать... |
Автор: | Maxi_daxi [ 10 июн 2008 11:30 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
to eger_666 Ламот - реальный чел! Я использовал его OutPost для проекта в ИТМО. Конечно, я добавил своего, но в основном неделю разбирался в коде: в его BOB-ах и.т.д В результате прокатило и я поступил. Сейчас учусь по NeHe OpenGl, если захочешь побольше узнать об OpenGl советую! Желаю тебе удачи в освоении ЛаМота, DirectX и игростроении! P.S Классная книга написана Мозговым: "Занимательное программирование"(есть в сети), может заинтересует. |
Автор: | eger_666 [ 10 июн 2008 12:24 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Ну спасибо конечно, но вот с уроками от этого NeHe у меня тоже проблема. Самый первый урок - написал всё как на сайте, пришлось добавить tchar.h и поставить на multi-byte, в итоге прога всётаки запустилась но никак не реагирует, видимо что-то с обработчиком сообщений... И чё за "занимательное программирование" от Мозгового??? Там про какой язык? |
Автор: | Maxi_daxi [ 10 июн 2008 13:19 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Цитата: в итоге прога всётаки запустилась но никак не реагирует, видимо что-то с обработчиком сообщений... У меня была аналогичная проблема. Вот работающий код: Код: LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_ACTIVATE: if (!HIWORD( wParam )) active = TRUE; else active = FALSE; break; case WM_SYSCOMMAND: switch ( wParam ) { case SC_SCREENSAVE: case SC_MONITORPOWER: return 0; } return DefWindowProc( hWnd, uMsg, wParam, lParam ); break; case WM_CLOSE: PostQuitMessage(0); break; case WM_KEYDOWN: keys[wParam] = TRUE; break; case WM_KEYUP: keys[wParam] = FALSE; break; case WM_SIZE: ReSizeGLScene( LOWORD(lParam), HIWORD(lParam) ); break; default: return DefWindowProc( hWnd, uMsg, wParam, lParam ); } return 0; } Возможно из-за этого: Обрати внимание на WM_SYSCOMMAND, если wparam НЕ SC_SCREENSAVE или SC_MONITORPOWER, то нужно передать сообщение window-cкому обработчику сообщений ( return DefWindowProc( hWnd, uMsg, wParam, lParam ) ) , в противном случае прога не будет реагировать. У меня еще возникла такая проблема: CreateWindow отказывался работать, а все потому что имена класса и окна не совпадали: wc.lpszClassName = "OpenGL"; CreateWindowEx(...,"Open GL",...) Может не знаешь, для каждого урока есть исходный код, его можно скачать на странице NeHE нажав на английское название урока(в самом начале каждого урока) Цитата: И чё за "занимательное программирование" от Мозгового??? Там про какой язык? Скачай и узнаешь! |
Автор: | eger_666 [ 10 июн 2008 13:58 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Вставка ( return DefWindowProc( hWnd, uMsg, wParam, lParam ) ) непомогла. Названия класов действительно оказались разныма. Я подправил это. Теперь появляется сообщение о невозможности создать окно. Может исходник дать? |
Автор: | eger_666 [ 10 июн 2008 14:01 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Ещё к сведению: окно "прозрачное" - то есть всё что за ним - видно, но при перемещении это все смазывается. Это стопудняк из-за неисправности обработчика... |
Автор: | Maxi_daxi [ 10 июн 2008 14:11 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Выложи код прямо в форум или прикрепи файл |
Автор: | eger_666 [ 10 июн 2008 14:31 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Сайт никакие файлы принимать не хочет, пишет что расширение запрещено, а при вставке в пост удаляются все пробелы так я воздержался... http://ifolder.ru/6923317 |
Автор: | Maxi_daxi [ 10 июн 2008 15:28 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Все работает! Для начала избався от warningov, добавь в самый конец WinMain Код: WinMain (...) { ..... TerminateGLWindow(); return msg.wParam; } И от еще одного: CreateGLWindow ( .... , bool fullscreenflag ) bool, а не boolean При попытке поменять полноэкранный на оконный режим получил BOX: During transition to/out of fullscreen mode was an error! Please notify us about it by e-mail: eger_666@mail.ru Порадовал! Перейдем к ошибкам\опечаткам 1)функция CreateGLWindow Между if ( !SetPixelFormat ( hDC, PixelFormat, &pfd ) ) и if ( !wglMakeCurrent ( hDC, hRC ) ) ты пропустил кусок: Код: if( !( hRC = wglCreateContext( hDC ) ) ) { TerminateGLWindow(); MessageBox( NULL, "Can't Create A GL Rendering Context.", "ERROR", MB_OK | MB_ICONEXCLAMATION); return FALSE; } 2) обработчик событий Было: Код: case WM_KEYDOWN: { Keys[wParam] = false; return ( 0 ); } //case Стало: Код: case WM_KEYDOWN: { Keys[wParam] = true; return ( 0 ); } //case Enjoy OpenGl! P.S. И у меня и у NeHe вместо true стоит TRUE, вместо false стоит FALSE Сделать это можно с помощью ctrl + H Кстати ctrl + F - поиск |
Автор: | eger_666 [ 10 июн 2008 15:34 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Так, щас буду разбираться... |
Автор: | Inferno7000 [ 10 июн 2008 15:38 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Цитата: Раздобыл пособие по написанию 2D игр на C++ который я неплохо знаю и в данный момент ещё учу. Но автор этой книги ( Андре Ламот ) создал очень много ошибок в коде примеров начиная с отсутствия запятых и кончая ошибками, из-за которых программа не удаляется из памяти... Из-за этого у меня возникают трудности. Какие именно ошибки, текст в студию? Я вроде читал Ламота, но ошибок не обнаружил. Цитата: Не рекомендовал бы Ла Мота. Почему? Ламот ваще чувак рульный, я сам по нему учился. |
Автор: | eger_666 [ 10 июн 2008 15:46 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
Maxi_daxi, спасибо, шоб я без тебя делал Но вот у меня пара мизерных вопросов: Чем отличается BOOL от boolean и чем отличается NULL от 0 ??? |
Автор: | eger_666 [ 10 июн 2008 15:47 ] |
Заголовок сообщения: | Re: Помогите очередному новичку. |
To Infrno... к примеру в главах где рассказывается про добавление ресурсов, он говорит про какой то файл .Ж Или к примеру он пишет вместо #include, ftinctude |
Страница 1 из 3 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |