PMG

Форумы по созданию игр
Текущее время: 28 мар 2024 14:58

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




Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 15:53 
Не в сети
Любитель

Зарегистрирован: 08 июн 2008 22:37
Сообщения: 18
Откуда: Питер
Цитата:
Чем отличается BOOL от boolean и чем отличается NULL от 0 ???

На первую часть ответить не могу(не знаю), но на вторую могу ответить точно: NULL от 0 абсолютно ничем не отличается
int* a = NULL и int* a = 0 эквивалентны, как и int a = NULL и int a = 0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 15:57 
Не в сети
Любитель

Зарегистрирован: 08 июн 2008 22:37
Сообщения: 18
Откуда: Питер
eger_666
Цитата:
To Infrno... к примеру в главах где рассказывается про добавление ресурсов, он говорит про какой то файл .Ж
Или к примеру он пишет вместо #include, ftinctude

Какая-то палёная у тя кинижка eger_666 :-D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 15:57 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 10 июн 2008 01:04
Сообщения: 45
Откуда: Москва
А чёже тогда многие пишут где НУЛЛ, а где 0? Для разнообразия???
И кстати при переходе в другой режим клавишей Ф1 появляется ошибка о невозможности зарегить окно. Вот щад думаю почему...

_________________
No commentaries...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 15:58 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 10 июн 2008 01:04
Сообщения: 45
Откуда: Москва
Плёная книжка))) А где можно нормальную скачать???

_________________
No commentaries...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 16:10 
Не в сети
Любитель

Зарегистрирован: 08 июн 2008 22:37
Сообщения: 18
Откуда: Питер
Цитата:
И кстати при переходе в другой режим клавишей Ф1 появляется ошибка о невозможности зарегить окно. Вот щад думаю почему...


В конце TerminateGLWindow пропущено:
Код:
if( !UnregisterClass( "OpenGL", hInstance ) )
{
   MessageBox( NULL, "Could Not Unregister Class.", "SHUTDOWN ERROR", MB_OK | MB_ICONINFORMATION );
   hInstance = NULL;
}

Не забывай, что имена должны совпадать! здесь имя - "OpenGL"

Цитата:
Плёная книжка))) А где можно нормальную скачать???

Получше скан предложить не могу, но могу подкинуть исходный код на email к обоим книгам ЛаМота!

Цитата:
А чёже тогда многие пишут где НУЛЛ, а где 0? Для разнообразия???

Ты прав, по моему та же тема в Паскале с NIL


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 16:17 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 10 июн 2008 01:04
Сообщения: 45
Откуда: Москва
Цитата:
Получше скан предложить не могу, но могу подкинуть исходный код на email к обоим книгам ЛаМота!

Ну если можешь, то давай. Думаю имейл ты уже знаешь :-D
Цитата:
Ты прав, по моему та же тема в Паскале с NIL

Да, в Delphi тоже некоторые любят nil ставить...

_________________
No commentaries...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 16:56 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 10 июн 2008 01:04
Сообщения: 45
Откуда: Москва
Короче с чего лучше начать? С Уроков NeHe или с Лемота?

_________________
No commentaries...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 17:24 
Не в сети
Любитель

Зарегистрирован: 08 июн 2008 22:37
Сообщения: 18
Откуда: Питер
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 бит.


Последний раз редактировалось Maxi_daxi 27 июн 2008 12:10, всего редактировалось 5 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 18:42 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 10 июн 2008 01:04
Сообщения: 45
Откуда: Москва
Круто! Я нашёл где можно скачасть обе книги Лемота вместе с файлами!!! На торрентс ру недавно появилось!!!

_________________
No commentaries...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 21:34 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 10 июн 2008 01:04
Сообщения: 45
Откуда: Москва
Код:
#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

Окно не появляется, но прога появляется в процессах. В чём ошибка???

_________________
No commentaries...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 22:07 
Не в сети
Любитель

Зарегистрирован: 08 июн 2008 22:37
Сообщения: 18
Откуда: Питер
Так должно работать:
Код:
ShowWindow(hWnd, nShowCmd); //НОВОЕ

  //Main event cycle
  while(GetMessage(&msg, NULL, 0, 0))
  {
      TranslateMessage(&msg);
      DispatchMessage(&msg);
  }   //while


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 22:27 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 10 июн 2008 01:04
Сообщения: 45
Откуда: Москва
Спасибо. Блин, как же я пропустил эту мелочь?..

_________________
No commentaries...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 22:45 
Не в сети
Любитель

Зарегистрирован: 08 июн 2008 22:37
Сообщения: 18
Откуда: Питер
Цитата:
Спасибо. Блин, как же я пропустил эту мелочь?..

Ты ,кажется, сделал все ошибки, которые только можно сделать! =)
Скорее Ламота качай =) , там хорошо рассказано программирование на Windows.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 23:07 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 10 июн 2008 01:04
Сообщения: 45
Откуда: Москва
Этот код именно из его книги. Факт в том, что прога не хочет уходить из памяти. Я в прошлый раз сам как-то исправил, но щас что-то не помогает...
Цитата:
Скорее Ламота качай

Да я уже скачал обе книги вместе с CD =)

_________________
No commentaries...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите очередному новичку.
СообщениеДобавлено: 10 июн 2008 23:36 
Не в сети
Любитель

Зарегистрирован: 08 июн 2008 22:37
Сообщения: 18
Откуда: Питер
Молодец ,что пишешь построчно, но ведь нужно же сверяться и с работающим исходным кодом к книге!
У меня сейчас на коленях первая книга Ламота. Я понял, что это листинг 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 можно и не прописывать.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу Пред.  1, 2, 3  След.

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


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

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


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

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